Z-System Corneò (c) by Jay Sage The Computer Journal, Issue 42 Reproduced with permission of author and publisher Á  numbeò oæ neweò TCÊ readeró havå commenteä thaô witè thió columî  theù feeì  thaô theù arå cominç intï thå middlå oæ á verù involveä discussioî  thaô ió harä tï catcè oî to® Oæ course¬ onå answeò tï thaô probleí ió foò ne÷  TCÊ readeró  tï purchaså bacë issues® É havå beeî writinç thió  columî  regularlù sincå  issuå  #25¬ anä É aí quitå surå thaô alì thoså bacë  issueó  arå  stilì available®   Thaô solutioî notwithstanding¬ iô ió probablù noô á baä  ideá  tï stanä bacë everù sï ofteî anä trù tï comprehenä á largeò picture® Thaô ió onå oæ thå taskó É wilì undertakå thió time. Detaileä technicaì contenô wilì noô bå forsakeî entirely¬ however¬  sincå É  regarä thaô aó thå primarù purposå oæ mù column® Aô thió point¬ É  suspecô thaô  É aí toï mucè oæ á Ú-Systeí experô tï talë abouô verù manù topicó  aô  á leveì  thaô ió appropriatå foò beginners® Tï servå theiò needs¬ É  havå  beeî verù  activelù  solicitinç articleó froí otheò authors® Iî  thió  issue¬  foò example¬  wå havå thå firsô oæ thå columnó É promiseä á couplå oæ issueó  bacë oî ho÷ tï seô uð á remotå accesó systeí (aká bulletiî boarä system© undeò  thå NZCOÍ  autï-instalì  versioî oæ Ú-System® Leå McEweî (aká Chrió  McEwen©  haó donå á lovelù joâ witè thaô assignment. Thå  technicaì discussioî thió timå wilì focuó oî somå issueó thaô  aroså iî  tryinç  tï  instalì ZSDOÓ oò ZDDOÓ oî aî SB18°  computeò  witè  thå  XBIOÓ enhanceä operatinç system® Beforå yoõ saù "Buô É don'ô havå aî SB180,¢ leô må assurå yoõ thaô thå techniqueó havå morå generaì applicability® Thå  specifiã XBIOÓ  probleí  ió  onå  thaô haó comå uð ofteî anä haó  beeî  thå  sourcå  oæ considerablå  frustratioî tï XBIOÓ users® [Theù arå iî gooä company¬  bù  thå way® Jusô aó É waó finishinç thió article¬ É goô á calì froí Bridgeò Mitchelì abouô  thió  verù subject!Ý É aí onlù sorrù thaô iô tooë må sï  lonç  tï  geô arounä  tï workinç oî it® Genå Pizzetta¬ á fello÷ Bostonian¬ waó thå  squeakù wheeì  thaô finallù goô mù attention¬ anä hå haó contributeä á numbeò  oæ  hió owî ideaó tï thå solution. Announcements Beforå wå geô dowî tï business¬ É have¬ aó usual¬ á fe÷ announcementó  tï make®   Firsô  É woulä likå tï reminä readeró oncå agaiî abouô  Bilì  Tishey'ó superâ  collectioî  oæ helð fileó foò thå hundredó oæ  Ú-Systeí  programó  no÷ available®   Bilì  caî no÷ generatå disketteó iî manù  formató  besideó  Applå (usinç hió son'ó Commodorå 128)¬ anä hå ió willinç tï filì youò disketteó witè thå  fileó foò onlù $10® Mù columî iî issuå #3¶ gavå thå followinç  procedurå tï  followº  (1©  senä enougè formatteä disketteó (plainlù  labeleä  witè  thå format©  tï  holä  aô leasô 1000Ë byteó (uð froí 800Ë bacë then)»  (2©  uså  á reusablå disë maileò oò encloså á maileò suitablå foò returninç thå  disketteó tï  you» anä (3© encloså á returî addresó label¬ returî postage¬ anä  thå  $1° 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õ caî senä thå disketteó tï må aó well. Second¬ É woulä likå tï makå á speciaì poinô oæ callinç youò attentioî tï thå  GEniå  RoundTablå  discussionó thaô takå placå everù  Wednesdaù  aô  10pí Easterî  time® Thå firsô sucè sessioî oæ eacè montè ió devoteä  tï  Ú-System¬ anä  É aí thå moderator¬ sï thió ió youò chancå foò á reaì-timå dialoguå  witè me® Gï tï pagå "685;2¢ oî GEniå anä enteò "Rooí 2". Therå   arå  severaì  changeó  tï  reporô  iî  thå  rosteò  oæ   Ú-Nodes® Regrettably¬ Boâ Paddock'ó nodå #3¸ iî Franklin¬ PA¬ haó gonå ofæ thå air®  Tï offseô  thaô loss¬ however¬ nodå #7³ iî thå St® Louis¬ MO¬ areá haó comå  bacë tï  lifå afteò beinç dowî foò severaì years® Sysoð Georgå Alleî anä  cï-sysoð Walô  Stumpeò  woulä  bå happù tï heaò froí yoõ  aô  31´-82±-107¸  (PÃ-Pursuiô MOSLO/24)® Thå equipmenô ió currentlù á Xeroø 82°-IÉ witè á 1° Meç drive¬ buô thå sysopó hopå tï expanä sooî tï á 30« Meç Ampro. Oî  thå  Ú-Nodå  front¬ É aí alsï sorrù tï  reporô  thaô  Ú-Nodå  Centraì (Lillipute© waó downeä bù hardwarå failureó oî botè computers¡ Theù havå beeî ofæ thå aiò foò á couplå oæ monthó alreadù aó É writå this¬ anä sysoð  Richarä Jacobsoî haó jusô faceä thå truthº thaô iô wilì noô bå cominç back® Laderá  Ú- Nodå  (#2©  iî  Loó Angeleó wilì takå oveò aó Ú-Nodå  Central®   Chicagï  areá calleró lookinç foò Ú supporô shoulä checë ouô thå Antelopå Freewaù systeí ruî bù ZDOÓ-coauthoò Carsoî Wilsoî foò CFOÇ (Chicagï areá FOG)® Thió ió onå oæ  á smalì  numbeò oæ remotå accesó systemó runninç undeò thå Z3PLUÓ flavoò  oæ  Ú- System®   Thå  phonå numbeò ió 31²-76´-515² (PÃ-Pursuiô ILCHI/24)®  Wå  expecô thaô itó 'Systeí One§ wilì sooî bå á Ú-Nodå ('Systeí Two§ supportó MÓ-DOS). Finally¬  therå havå beeî somå verù significanô developmentó witè BDÓ  C® Leoò  Zolmaî completeä somå majoò additionó tï thå Ú versioî (BDÓ Z)¬ anä  thå finaì  releaså  haó  jusô  gonå ouô aó É writå thió  columî  iî  miä  October® Programó generateä bù BDÓ Ú no÷ havå á fulì Ú-Systeí headeò anä caî bå  linkeä aó typå-³ programó tï loaä anä ruî aô aî arbitrarù address® ZDOÓ coauthoò Caí Cotrilì haó alreadù releaseä á substantiaì amounô oæ BDÓ Ú codå foò performinç thå functionó iî thå SYSLIB¬ VLIB¬ anä Z3LIÂ assemblù-languagå librarieó  thaô arå noô alreadù builô intï BDÓ Z. Leoò haó no÷ turneä oveò alì oæ thå marketinç anä somå oæ thå developmenô responsibilitù  foò  BDÓ Ã tï me® Recognizinç thaô thå $9° pricå taç  oæ  thå fulì  package¬ howeveò reasonablå foò whaô onå gets¬ ió aî impedimenô  tï  ne÷ useró whï wanô tï experimenô witè C¬ wå havå prepareä á lo÷ cosô  introductorù packagå  thaô (1© includeó onlù onå versioî oæ thå codå (eitheò standarä  CP/Í oò  Ú-System)¬  (2© containó onlù thå essentiaì files¬ anä (3© comeó  witè  aî abridgeä  versioî  oæ thå manuaì (anä withouô thå fancù BÄ  Softwarå  binder)® Thió  packagå wilì bå offereä foò onlù $60® Otheò partó oæ thå  fulì  packagå caî  bå addeä laterº $2µ foò thå seconä versioî oæ thå compiler¬ $2µ  foò  thå supporô  materialó  (REÄ  editor¬ CDÂ debugger¬ anä thå partó  oæ  thå  manuaì coverinç  them)¬ oò $4° foò botè aô once® Iæ thå wholå packagå ió ordereä  aô once¬  iô  comeó completå witè aî attractivå bindeò (alsï availablå  witè  thå introductorù packagå foò $µ extra). Iô shoulä bå noteä thaô BDÓ Ú generateó programó thaô ruî perfectlù  welì Šundeò  standarä  CP/M® Naturally¬ theù wilì noô recognizå  Ú-Systeí  featureó likå  nameä  directories¬ buô theù wilì accepô thå no÷ standarä  DUº  extendeä drive/useò  syntaø  insteaä oæ thå oldeò U/Dº formaô oæ standarä BDÓ  C®   Thå onlù  disadvantagå oæ usinç BDÓ Ú ratheò thaî BDÓ Ã oî á standarä CP/Í  systeí ió  thaô  thå programó carrù Ú-Systeí overheaä (abouô 80°  bytes©  thaô  don'ô providå theí witè anù functionality. Whaô ió á Microcomputeò Operatinç Systeí For? Thå basiã functioî oæ aî operatinç systeí ió tï makå one'ó lifå ­­  one'ó computinç  life¬ thaô ió ­­ simpler® Wheî microcomputeró firsô camå out¬  thå biggesô burdeî waó dealinç witè thå hardware® Iô waó nï fuî foò thå  computeò useò  anä programmeò (largelù synonymouó iî thoså days© tï havå tï  deaì  oveò anä oveò witè thå intricacieó oæ thå physicaì operatioî oæ thå hardware¬  sucè aó gettinç characteró tï anä froí thå terminaì oò papeò tapå reader/punch¬ noô tï  mentioî  thå dauntinglù morå compleø tasë oæ managinç datá oî  á  magnetiã tapå oò floppù diskettå drive. Garù  Kildall'ó CP/Í operatinç systeí provideä á solutioî ­­ anä  á  verù gooä  onå  (bù anä large© iî mù opinioî ­­ tï thoså problems® Iô  diä  sï  bù implementinç  á  standardizeä  anä modulaò interfacå thaô  handleä  thå  basiã devicå  communicatioî  tasks®   CP/M¬ whicè stooä  (É  believe©  foò  "Controì Prograí  foò Microcomputers,¢ waó thå masteò prograí thaô onå goô  runninç  oî thå  computeò righô afteò poweò up® Iô woulä theî allo÷ onå tï loaä  anä  ruî otheò programs¬ witè controì alwayó returninç tï thå CP/Í masteò prograí afteò eacè useò prograí finished. Besideó  acceptinç  anä  interpretinç commandó  issueä  bù  thå  computeò operator¬  aî operatinç systeí likå CP/Í alsï provideó residenô  codå  (alwayó readù  iî memory© foò performinç certaiî functionó thaô  applicatioî  programó wilì  ofteî  wanô  tï use® Thå simpleò functionó arå thingó  likå  sendinç  á characteò tï thå terminaì screen» thå morå compleø oneó includå fetchinç  froí oò  writinç  tï á floppù diskettå thå informatioî associateä  witè  á  logicaì entitù knowî aó á file. Witè   theså  functionó  implementeä  iî  thå  operatinç   systeí   code¬ applicatioî  programó arå easieò tï writå anä dï noô havå tï includå thå  samå codå  oveò anä over® Morå importantly¬ theù caî ruî oî á varietù oæ  hardwarå platforms¬  sincå  thå  detailó oæ thå physicaì hardwarå arå  handleä  bù  thå operatinç  systeí  code¬  anä thå prograí caî deaì witè thingó  aô  á  logicaì level. Logicaì vs® Physical Perhapó  thió ió á gooä timå foò á brieæ asidå oî thió matteò oæ  logicaì versuó  physical® Wå uså thå adjectivå "physical¢ wheî wå arå  talkinç  abouô thingó  thaô arå actuallù iî thå hardware® Iî thå caså oæ á floppù disk¬  foò example¬  thå  physicaì  itemó arå thå bitó oæ datá  storeä  aó  magnetizatioî patterns®   Theså bitó arå groupeä intï sectors¬ anä thå sectoró intï  tracks® Iî  thå  caså  oæ á terminaì screen¬ thå physicaì itemó arå  thå  patternó  oæ illuminateä dotó thaô wå recognizå aó letters¬ numbers¬ anä otheò symbols. Š Oî  thå  otheò  hand¬ wå uså thå adjectivå "logical¢  tï  describå  thoså thingó  whicè arå essentiallù thå creatioî oæ ouò mindó (anä  programs)®   Foò example¬  therå  ió  nï sucè physicaì thinç aó á "file.¢ Nï  matteò  ho÷  yoõ examinå á diskette¬ yoõ wilì neveò finä á filå oî iô (aó such)» yoõ wilì  finä onlù sectoró anä tracks® Iô ió ouò choicå tï organizå thå datá oî thå disë iî á  waù thaô associateó groupó oæ sucè sectoró witè á filå nameó anä  tï  storå thå filå nameó iî á particulaò grouð oæ sectoró oî thå disk. Modularity CP/Í  ió  modulaò iî thå senså thaô iô divideó uð thå  functionó  oæ  thå operatinç  systeí intï separatå packages® Onå parô ió calleä thå BIOÓ  (basiã input/outpuô  system)® Thió part¬ whicè liveó aô thå verù toð oæ  thå  memorù addresó space¬ dealó directlù witè thå hardware® Iô readó anä writeó physicaì sectoró  froí anä tï á diskette» iô determineó whetheò oò noô á keù  haó  beeî presseä oî thå keyboarä and¬ iæ so¬ whicè key» anä iô sendó characteró tï  thå screen® Thå BIOÓ ió thå onlù parô oæ CP/Í thaô ió differenô foò eacè hardwarå implementatioî oæ á CP/Í computer. Thå seconä CP/Í modulå ió calleä thå BDOÓ (basiã disë operatinç  system)® Iô  dealó witè logicaì constructs® Wå havå alreadù spokeî oæ files®   Wheî  á filå  ió referreä to¬ thå BDOÓ figureó ouô whicè physicaì trackó  anä  sectoró contaiî  thå datá foò thaô file® Anotheò logicaì construcô ió lineó oæ  text® Thå  BDOÓ  haó á functioî tï senä á completå linå oæ texô tï  thå  screeî  (aó opposeä  tï  thå  BIOS¬ whicè caî senä onlù á singlå character)¬  anä  iô  haó anotheò  functioî  tï geô á completå linå oæ texô froí thå  user¬  allowinç  á limiteä  amounô  oæ  editing® Theså functionó makå iô  mucè  easieò  foò  thå applicatioî programmeò tï writå hió oò heò program. Thå  lasô CP/Í modulå ió calleä thå CCÐ (consolå commanä processor)®   Iô getó  á  commanä typeä bù thå useò aô thå consolå anä  takeó  thå  appropriatå actioî  tï  carrù ouô thaô command® Somå commands¬ sucè aó DIÒ  oò  ERA¬  arå implementeä  directlù  iî  thå CCÐ code® Otheró requirå thaô á  COÍ  filå  bå loadeä froí diskettå anä executed. Commanä Processinç Undeò CP/M Foò  thå  mosô part¬ CP/Í accomplisheó thå functionó iô waó  designeä  tï perforí  iî admirablå fashion® However¬ iô waó sï concerneä witè solvinç  thå hardwarå  interfacå  probleí  (thå  programmeò  interface©  thaô  iô   devoteä relativelù littlå attentioî tï thå useò interface® Tï bå fair¬ iô waó borî iî thå  dayó wheî 16Ë oæ memorù cosô abouô $50° (iî 1970ó dollars¬ nï  less©  anä occupieä  aî  entirå Ó-10° carä (biggeò bù faò thaî á wholå  SB180FØ  computeò witè  512K)®   Todaù wå mighô noô thinë thaô 64Ë ió verù mucè (somå  saù  thaô OS/²  feeló  dreadfullù crampeä iî lesó thaî ³ Megs!)¬ buô iô makeó á  loô  oæ thingó possiblå thaô 48Ë (oò eveî less© woulä noô allow. CP/M'ó commanä processoò diä littlå morå thaî thå minimuí iô waó requireä 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å easier®   Yoõ haä tï specifù ratheò exactlù thå commanä yoõ wanteä  performed» nï  leewaù waó allowed® Anä iæ yoõ madå á mistake¬ CP/Í diä noô trù tï  help» iô jusô shruggeä itó shoulderó anä emitteä á questioî mark. Thå Nicetieó oæ Ú-System Thå  Ú-Systeí haó evolveä oveò á perioä oæ nearlù á decadå now¬  buô  itó goaì  froí  thå  verù beginninç haó alwayó beeî tï makå  iô  easieò  anä  morå convenienô  tï  operatå  thå computer® Mù ideaì ió tï havå  thå  computeò  dï everythinç  thaô  iô possiblù caî dï foò thå useò anä leavå tï thå  useò  onlù thoså  taskó  thaô  nï computeò coulä possiblù figurå ouô  oî  itó  own®   Thå commanä  processoò  improvementó É havå introduceä anä thå  utilitieó  É  havå writteî  havå  alì beeî directeä towarä thaô goal® É wilì no÷ ruî  througè  á shorô  summarù  oæ  Ú-Systeí featureó anä trù tï indicatå ho÷  theù  makå  thå operator'ó lifå easier® Thió lisô ió adapteä froí mù book¬ "Thå ZCPR3³ User'ó Guide." Useò Areá Access CP/Í  introduceä  thå  concepô oæ disë "user¢ areas¬  whicè  alloweä  thå operatinç systeí tï grouð fileó intï separatå logicaì directorieó  (physicallù thå  fileó  arå  alì  storeä iî thå samå directory¬ buô  theù  arå  taggeä  tï indicatå  thå  useò area)® Unfortunately¬ CP/Í provideä nï practicaì  waù  tï accesó fileó acrosó useò areas¬ whicè madå theí almosô useless. Bacë iî thå dayó wheî diskó helä onlù abouô 100K¬ therå wasn'ô mucè  neeä foò  thió  kinä oæ organization¬ buô todaù floppù disketteó  commonlù  havå  á capacitù betweeî 350Ë anä 1.³ Meg® Harä diskó witè manù tenó oæ megabyteó arå alsï  inexpensivå  anä common® Undeò theså circumstances¬  á  singlå  logicaì drivå  caî holä hundredó oò eveî thousandó oæ files¬ anä somå waù tï  organizå theí becomeó essential. Ú-Systeí  makeó iô verù easù anä convenienô tï organizå youò fileó  baseä oî  useò  numbers®   Wherå CP/Í alloweä onlù á drivå prefiø  tï  á  filå  namå (D:NAME.TYP)¬ Ú-Systeí allowó drivå and/oò useò numbeò prefixeó  (DU:NAME.TYP© sï  thaô fileó iî otheò useò areaó aó welì aó otheò driveó caî  bå  referenceä directly®   Iî  addition¬  Ú-Systeí allowó meaningfuì nameó  (similaò  tï  DOÓ subdirectorù  names©  tï  bå assigneä tï drive/useò areas®  Thió  provideó  aî interfacå  thaô  ió faò morå suitablå tï thå waù peoplå  thinë  anä  remember® Witè thå DUº form¬ thå operatoò haó tï thinë abouô thå hardwarå (somethinç  hå oò shå shoulä noô havå tï do¬ remember?)» witè nameä directories¬ thå operatoò thinkó  iî termó oæ functioî (TEXTº foò texô files¬ BDSCº foò thå Ã  compiler¬ DBASEº foò databaså files¬ anä sï on). Terminaì Independencå anä thå Environment Whilå  somå  woulä  arguå thaô thå DOÓ hardwarå  anä  softwarå  standardó establisheä bù IBM'ó markeô dominancå havå resulteä iî aî enforceä mediocrity¬ Štherå  ió nï doubô thaô havinç á singlå environmenô iî whicè tï operatå  makeó lifå  mucè  easieò foò applicationó programmers® Programó foò  DOÓ  generallù worë  righô  ouô oæ thå boø oî anù IBÍ compatiblå computer®  Configuratioî  ió requireä onlù foò finå-tuning. CP/M¬  oî  thå otheò hand¬ waó designeä tï allo÷ programó tï  ruî  oî  aî extremelù  widå varietù oæ hardware® Iî thoså days¬ "personal¢ computeò  tooë oî  á  differenô meaninç ­­ eacè persoî designeä anä builô hió  owî  hardware® CP/Í  coulä  bå  madå tï worë witè alì oæ them¬  buô  elaboratå  configuratioî procedureó  werå  generallù  required¬ especiallù tï  matcè  programó  tï  thå particulaò  terminaì  used®   Tï thió day¬ wå stilì havå  tï  deaì  witè  thió hardwarå diversity. Whaô  CP/Í coulä havå buô faileä tï providå waó á meanó foò conveyinç  tï applicatioî  programó informatioî abouô thå operatinç  environment®   Ú-Systeí haó  severaì  moduleó  thaô afforä sucè communication®   Aî  areá  calleä  thå environmenô   descriptoò   (ENV©  containó  informatioî   abouô   thå   systeí configuration®   Anotheò  systeí areá calleä thå messagå buffeò  (MSG©  storeó informatioî thaô onå prograí caî leavå foò anotheò prograí thaô runó lateò  tï read. Parô  oæ  thå  ENÖ ió á sectioî calleä thå  TCAÐ  oò  Terminaì-CAPabilitù descriptor® Thå TCAÐ allowó á prograí runninç undeò Ú-Systeí tï determinå thå typå oæ terminaì iî uså anä tï adapô tï thå controì codeó iô useó foò  speciaì videï  operations® Thå ENÖ haó informatioî abouô thå sizå oæ thå  screeî  anä thå printer'ó page® Iô alsï containó sucè informatioî aó thå CPÕ clocë  speeä anä  whicè disë driveó arå availablå (whù allo÷ attemptó tï loç intï drivå  Cº iæ  therå  ió nï drivå Cº ­­ iô ofteî jusô hangó thå computer)®  Thå  Ú-Systeí supportó  manù  optionaì  operatinç  systeí  featureó  containeä  iî  optionaì modules¬ anä thå ENÖ containó informatioî abouô theså moduleó also. Thå ENÖ anä TCAÐ noô onlù relievå thå useò oæ thå nuisancå oæ  installinç programs» theù alsï makå iô verù easù tï changå thå installation® Suppose¬ foò example¬ yoõ wanô tï prinô somå fileó iî 13²-columî modå insteaä oæ thå  usuaì 8°-columî  mode®   Undeò  CP/Í  yoõ  mighô verù  likelù  havå  tï  geô  ouô  á configuratioî  prograí tï redefinå thå printeò setup® Witè á  Ú-Systeí  prinô utility¬  yoõ  woulä  simplù  changå  thå modå  oî  youò  printer¬  ruî  CPSEÔ (console/printeò set© tï selecô thå 13²-columî printeò definition¬ anä ruî thå samå prinô prograí aó before. Commanä Processinç Enhancements Undeò  CP/M¬ yoõ havå tï specifù wherå thå COÍ filå tï bå ruî ió  locateä (otherwiså  thå  currenô  drivå ió assumed)® Thió ió  á  perfecô  examplå  oæ somethinç  thaô  á computeò caî easilù bå smarô enougè tï dï foò you¬  anä  Ú- Systeí  does® Aó witè moderî versionó oæ DOÓ (whicè tooë manù yearó tï  catcè oî  tï thió Ú-Systeí feature)¬ yoõ specifù á lisô oæ directorù areaó thaô  thå operatinç  systeí  wilì scaî foò á requesteä COÍ file® Iæ yoõ  wisè  (aó  yoõ mighô  wheî  yoõ kno÷ thaô youò COÍ filå ió noô oî thå searcè path)¬  yoõ  caî specifù  á directorù usinç eitheò thå DUº prefiø oò thå nameä  directorù  DIRº prefix¬ anä yoõ arå thuó noô limiteä tï thå currenô useò areá oò thå path. Š Witè Ú-Systeí onå ió alsï nï longeò limiteä tï issuinç commandó onå aô  á timå (DOÓ haó beeî eveî sloweò tï catcè oî tï this)® Á singlå linå oæ commanä inpuô caî contaiî á wholå sequencå oæ commands® Aó á result¬ yoõ dï noô  havå tï  interrupô youò thinkinç tï waiô foò onå commanä tï finisè beforå  yoõ  caî specifù  thå  seconä anä subsequenô stepó iî á process® Yoõ caî  worë  ouô  á strategù  foò whaô yoõ wanô tï accomplisè anä issuå alì thå commandó aô  once¬ beforå yoõ forgeô oò geô confused. Manù  ofô-repeateä  computationaì  taskó involvå  sequenceó  oæ  commandó (e.g.¬  editing¬  assembling¬ linking¬ running» oò  editing¬  spelì  checking¬ printing)®   Iî sucè cases¬ thå Ú-Systeí aliaó facilitù (similaò iî somå  wayó tï  SUBMIÔ  buô faò morå flexible© caî bå useä tï definå á ne÷  commanä  name¬ which¬ wheî invoked¬ performó thå entirå sequence® Thió saveó thå useò á  loô oæ  typinç buô morå importantlù eliminateó thå neeä tï remembeò  exactlù  whaô thå  sequencå is® Basically¬ yoõ solvå thå probleí oncå anä puô thå  solutioî intï aî aliaó script® Froí theî on¬ thå computeò ió smarô enougè tï takå carå oæ  thå compleø detailó foò you® É havå giveî manù exampleó oæ thió  iî  pasô columns. Conditionaì Commanä Execution Therå  ió  onlù  sï mucè onå caî accomplisè oî á computeò  (oò  iî  life© withouô  makinç decisions® Havå yoõ eveò seeî á programminç languagå witè  nï abilitù  tï perforí testó anä acô iî differenô wayó dependinç oî thå  results¿ Flo÷  controì  (IF/ELSE/ENDIF© ió uniquå tï thå  Ú-Systeí  commanä  processor® Otheò  operatinç systemó thaô offeò flo÷ controì aô alì limiô iô tï  operatioî insidå á batcè oò scripô language. Á  speciaì seô oæ Ú-Systeí commandó caî tesô á widå rangå oæ  conditions¬ anä  thå commanä processoò wilì uså thå resultó oæ thå testó tï  decidå  whicè subsequenô commandó wilì bå performeä anä whicè wilì bå skipped® Thió  allowó thå  Ú-Systeí  tï responä iî á remarkablù flexiblå anä  intelligenô  way®  Thå solutioî tï á compleø computinç task¬ onå thaô requireó oî-thå-spoô  decisioî- making¬  caî  bå workeä ouô oncå anä embeddeä iî aî aliaó  command®  Theî  yoõ won'ô havå tï taø youò braiî thå nexô timå yoõ neeä tï perforí thió task¬  anä novicå  useró wilì bå ablå tï dï thingó oî youò computeò thaô woulä havå  beeî beyonä theiò owî abilitù tï figurå out. Commanä Processoò Shells Iæ yoõ dï noô wanô tï deaì witè thå operatinç systeí aô thå commanä leveì oò  iæ  yoõ wanô tï havå á commanä processoò witè differenô features¬  thå  Ú- Systeí shelì facilitù allowó yoõ tï instalì substitutå useò interfaceó oæ youò owî choicå aô will® Theù caî eveî bå nesteä withiî eacè other. Shelló comå iî twï commoî varietiesº menõ shelló anä historù shells®  Thå menõ  interfaceó allo÷ thå useò tï picë taskó witè singlå keystrokeó anä  havå thå  shelì  prograí  generatå thå compleø sequenceó oæ  commandó  requireä  tï perforí thoså tasks® Thå menõ systeí shieldó thå useò froí complexity¬  saveó Štyping¬ anä greatlù reduceó thå chancå oæ error. Historù  shelló  arå  enhanceä  commanä  processoró  thaô  remembeò  youò commandó anä allo÷ yoõ tï recalì anä ediô previouó commanä lines® É wisè  thå Apollï  Domaiî  minicomputeò  systeí  É uså aô worë (noô  tï  mentioî  mù  DOÓ computer©  haä á historù shelì onå quarteò aó nicå aó Ú-System'ó LSÈ oò  EASE® Theù  worë  likå  powerfuì wordprocessoró oî youò  commanä  history¬  allowinç searchinç anä extensivå editing. Whaô Iæ Yoõ Makå á Mistake Thió ió onå oæ thå otheò areaó iî whicè mosô operatinç systemó behavå  iî aî  abominablù  primitivå  manner® Wheî yoõ issuå á commanä  thaô  cannoô  bå performed¬  theù jusô issuå aî erroò messagå anä theî dumð yoõ bacë tï  squarå one® Ofteî yoõ arå noô eveî tolä whaô sorô oæ erroò occurreä (consideò  DOS'ó wonderfullù helpfuì "baä command¢ message). Thå  Ú-Systeí  behaveó iî á civilizeä manneò undeò  theså  circumstances® Wheî aî erroò occurs¬ thå commanä processoò turnó thå baä commanä linå oveò tï á  useò-specifieä erroò handler® Thå mosô sophisticateä erroò handleró  allo÷ thå operatoò tï ediô thå commanä anä thuó recoveò easilù froí typinç mistakes® Iî  á  multiplå commanä sequence¬ iæ subsequenô commandó werå alloweä  tï  ruî afteò aî earlieò commanä failed¬ therå coulä bå disastrouó repercussions¬  anä aî erroò handleò ió indispensible. Thå  systeí  environmenô  eveî containó aî erroò type¬  whicè  thå  erroò handleò  caî uså tï givå yoõ morå specifiã informatioî abouô whaô wenô  wrong® Iô maù bå thå familiaò erroò oæ á COÍ filå thaô coulä noô bå found¬ buô  therå arå manù otheò possiblå causeó foò thå difficulty® Á filå thaô yoõ  specifieä aó aî argumenô mighô noô havå beeî founä (e.g.¬ "TYPÅ FILENAM¢ wheî yoõ  meanô "TYPÅ  FILENAME")¬  oò  yoõ maù havå specifieä aî ambiguouó  filå  namå  tï  á prograí thaô cannoô accepô onå (e.g.¬ "TYPÅ *.DOC"). Systeí Security Likå  minicomputeò  anä mainframå operatinç systems¬ thå  Ú-Systeí  ió  á securå operatinç system® Thió meanó thaô iô haó mechanismó foò limitinç  whaô anù  particulaò  useò caî dï oò geô accesó to® Dangerouó  commandó  (sucè  aó erasing¬  copying¬ oò renaminç files© caî bå disableä wheî ordinarù useró  arå operatinç  thå systeí buô enableä wheî á privilegeä useò ió aô work® Areaó  oæ youò  disë caî bå restricteä froí accesó foò storagå oæ confidentiaì oò  otheò sensitivå  information®   Theså securitù featureó comå iî verù  handù  iî  thå implementatioî  oæ á remotå accesó systeí oò bulletiî boarä (seå Leå  McEwen'ó articlå  iî  thió  issue)® Therå ió nï neeä foò  additionaì  securitù  tï  bå provideä bù thå remotå interfacå prograí (BYE)® Thå Ú-Systeí alreadù includeó á fulì suitå oæ programó foò regulatinç anä controllinç systeí security. Summary Š Tï suí iô up¬ thå goaì oæ thå Ú-Systeí ió tï providå aî operatinç  systeí thaô  caî bå tailoreä extensivelù tï useò preferenceó anä thaô caî bå madå  tï handlå  oî itó owî anä automaticallù aó manù computationaì detailó aó iô  can¬ leavinç  thå  useò  freå tï concentratå solelù oî thoså  aspectó  oæ  computeò operatioî thaô requirå humaî intelligence. Fakinç Ouô Thå System Foò thå technicaì parô oæ thió column¬ É woulä likå tï talë brieflù abouô somå  techniqueó foò addinç extensionó tï á Ú-Systeí thaô iô waó noô  designeä tï accept® Thå neeä foò thió tricë aroså iî connectioî witè thå  installatioî oæ  ZSDOÓ  anä ZDDOÓ (anä theiò clocë drivers© oî aî SB18° computeò  witè  thå XBIOÓ enhanceä BIOS¬ buô iô caî bå usefuì iî otheò situationó aó well. XBIOÓ  ió á verù nicå anä flexiblå system® Onå oæ itó maiî  featureó  ió thaô  iô  keepó mucè oæ thå BIOÓ iî aî alternatå memorù bank¬ leavinç  á  mucè largeò  TPÁ  (transienô prograí area© foò applicatioî programó  thaî  diä  thå standarä BIOÓ froí MicroMint® Thå configuratioî anä loadinç process¬ however¬ ió somewhaô unconventionaì (á forerunneò iî somå wayó tï thå NZCOÍ anä  Z3PLUÓ techniques). Thå XBIOÓ systeí ió loadeä noô froí systeí trackó oî thå disë buô froí  á file®   Thió  filå  ió generateä bù á speciaì utilitù  prograí  calleä  SYSBLÄ (SYSteí  BuiLD©  thaô  allowó  onå tï definå iî  á  ratheò  flexiblå  waù  thå configuratioî  oæ one'ó personaì Ú-System¬ includinç thå nameó oæ thå CCÐ  anä DOÓ  fileó tï bå used® Thoså componenô files¬ however¬ musô bå  availablå  iî REÌ  format¬  anä thå ne÷ Ú-Systeí DOÓ componentó arå supplieä iî  ZRÌ  formaô onlù  (becauså  theù  havå  hookó tï otheò partó oæ thå  systeí  thaô  caî  bå resolveä onlù bù thaô format). Changinç Systemó Usinç JetLDR JetLDÒ ió á lovelù littlå utilitù writteî bù Bridgeò Mitchelì thaô  knowó ho÷ tï loaä almosô anù modulå iî á Ú operatinç system® Iô ió mucè fasteò  anä morå carefuì thaî itó predecessors¬ LDÒ anä LLDR¬ anä iô ió noô limiteä tï thå noî-codå Ú moduleó ­­ sucè aó thå NDÒ (nameä directorù register© ­­ oò tï codå moduleó  preassembleä foò á fixeä systeí ­­ sucè aó aî RCÐ  (residenô  commanä package©  modulå FIXED.RCP® Iô caî loaä codå moduleó assembleä iî ZRÌ  formaô tï  whateveò addresó thaô modulå occupieó iî thå currenô systeí anä  witè  alì thå  hookó tï otheò Ú-Systeí moduleó generateä aô loaä time® Thuó  MYRCP.ZRL¬ assembleä once¬ caî bå useä iî anù systeí configuratioî thaô allocateó  enougè rooí foò aî RCÐ oæ thaô size. Mosô remarkably¬ JetLDÒ caî loaä eveî maiî operatinç systeí modulesº CCP¬ DOS¬  oò BIOS® Speciaì adjuncô configuratioî fileó (CFG© arå useä tï helð  iô iî somå oæ theså specializeä taskó (á littlå morå abouô thaô later)®  JetLDR'ó internaì helð screeî ió reproduceä iî Fig® ± sï yoõ caî seå thå wholå lisô  oæ moduleó iô caî handle® Iô ió availablå froí thå usuaì Ú supplieró foò $20. So¬ thå obviouó solutioî tï thå probleí oæ gettinç ZSDOÓ oò ZDDOÓ runninç 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å JetLDÒ command: JETLDÒ ZDDOS.ZRL ZSDOÓ  caî bå loadeä jusô aó easily® Oî mù systeí É havå ARUNÚ  aliaseó  thaô swað DOSó iî á jiffù thió waù iî caså É wanô tï perforí somå experiments. There'ó Thå Rub No÷  comeó thå problem® It'ó verù nicå thaô wå no÷ havå ZDDOÓ  oò  ZSDOÓ loadeä anä running¬ buô iæ wå wanô tï takå advantagå oæ itó wonderfuì timå anä datå  features¬ wå musô finä á waù tï loaä itó clocë anä (foò ZSDOS©  stampinç module¬  too®   Thå  ZDOÓ utilitù SETUPZSÔ makeó iô verù easù  tï  creatå  thå requireä  loader¬  LDTIM.COM» thå probleí isº wherå caî LDTIÍ puô  thå  driveò code¿ [Asideº Foò thoså whï owî it¬ É aí tolä thaô thå DateStampeò BSØ modulå wilì worë witè ZSDOS¬ buô É havå noô trieä thió myself® Iô requireó nï memorù tï load.] Iî  aî  NZCOÍ system¬ thå MKZCÍ systeí definitioî utilitù allowó  onå  tï specifù  á  "useò  buffer¢ areá iî memory¬ anä thió ió jusô  perfecô  foò  thå clock/stamð module® ZDOÓ eveî haó speciaì facilitieó foò takinç advantagå  oæ thió  buffer® LDTIÍ caî automaticallù determinå thå locatioî oæ  thaô  buffeò anä instalì thå driveró there¬ anä á speciaì patcè tï NZCOÍ (includeä witè thå ZDOÓ  package© giveó NZCOÍ thå abilitù tï reconnecô thå driveró  automaticallù afteò á ne÷ DOÓ ió loaded. XBIOS'ó  SYSBLÄ  utility¬  unfortunately¬ doeó noô supporô  sucè  á  useò buffeò (thió ió truå eveî iî thå 1.² versioî thaô ió ablå tï loaä ZRÌ  files)® Therå  ió  á waù tï tricë thå systeí intï makinç somå rooí  foò  extrá  memorù modules®   Thió  ió  tï assigî thå extrá memorù spacå needeä  tï  onå  oæ  thå standarä  modules¬  sucè aó thå RCP® Foò example¬ iæ yoõ uså aî  RCÐ  oæ  thå usuaì  2Ë  (1¶ record© sizå anä neeä onå pagå (twï records© oæ  memorù  foò  á ZDDOÓ  clocë  driver¬ yoõ simplù specifù aî 1¸-recorä RCÐ space®   Then¬  wheî SETUPZSÔ askó yoõ foò thå addresó tï whicè thå clocë driveò shoulä bå  loaded¬ yoõ givå iô thå startinç addresó oæ thå lasô pagå oæ thió RCÐ space. Oncå  theså stepó havå beeî followed¬ ZDDOÓ shoulä bå runninç  witè  datå stamping®   ZSDOÓ  coulä bå installeä similarlù excepô thaô  eveî  morå  extrá spacå  woulä havå tï bå allocateä tï thå RCP® Althougè whaô É havå  describeä sï faò wilì geô thå systeí running¬ therå ió somå dangeò thaô aî oversizå  RCÐ coulä bå loadeä bù accidenô anä overwritå thå clocë driver® Tï prevenô  this¬ thå  ENÖ modulå shoulä bå patcheä tï indicatå thaô onlù thå actuaì 1¶  recordó (10H© arå available. Foò  thoså  whï dï noô facå thå probleí oæ installinç ZDOÓ oî  aî  XBIOÓ- equippeä SB180¬ therå arå otheò useó oæ thió kinä oæ trick® Foò peoplå whï dï noô havå thå necessarù tooló (e.g.¬ MOVCPM© tï movå thå BIOÓ dowî tï makå rooí foò  speciaì driveró (sucè aó RAÍ disë driveró anä speciaì I/Ï  boards)¬  thió samå  tricë caî bå applieä tï opeî uð protecteä-memorù spacå foò  them®  Otheò peoplå  maù finä iô usefuì foò quicë experimentó witè speciaì  driveró  beforå Šgoinç tï thå troublå oæ movinç thå operatinç systeí around. Therå ió onå finaì refinemenô É woulä likå tï mention® Iô ió somethinç É learneä  froí  Genå Pizzetta¬ whï tooë mù generaì  recommendationó  abovå  anä workeä ouô thå detailó (seå hió file¬ ZÄ-XB11.LBR¬ availablå oî manù Ú-Nodes)® É  havå  usuallù useä eitheò thå IOÐ oò RCÐ moduleó foò thió trick¬  buô  Genå recommendeä usinç thå NDÒ instead® Thå reasoî foò thió ió thaô thå IOP¬  RCP¬ anä FCÐ geô allocateä iî 12¸-bytå chunks¬ whilå thå NDÒ getó allocateä iî mucè smalleò 1¸-bytå chunks¬ thå spacå requireä foò onå name® Iæ youò clocë  driveò takes¬  foò example¬ 27° byteó (10EH)¬ yoõ woulä havå tï allocatå threå  extrá records¬  becauså  thå driveò ió á tinù biô oveò twï records®   Iæ  yoõ  steaì spacå  froí  aî NDR¬ yoõ caî adä jusô twï records¬ buô reducå  thå  numbeò  oæ nameó iî thå NDÒ bù 1. Changinç Commanä Processors Generatinç á ne÷ CCÐ usinç JetLDÒ ió á littlå trickieò thaî changinç  thå DOS®   JetLDÒ  could¬ aó iô doeó witè á DOÓ oò BIOÓ module¬ loaä thå  ne÷  CCÐ intï  itó  operatinç  positioî iî memory¬ buô thió woulä  bå  oæ  questionablå value¬ sincå thå CCÐ woulä survivå onlù untiì thå nexô warmboot® So¬ instead¬ wheî  processinç  á  CCÐ  ZRÌ module¬ JetLDÒ  normallù  writeó  thå  resultinç absolutå-codå CCÐ tï á filå ZCCP.CCÐ (iî thå rooô directory¬ É believe). Thió  ió wherå CFÇ fileó comå intï play® Theù arå speciaì  codå  moduleó thaô JetLDÒ useó tï perforí speciaì processinç (seå thå filå JLTOOLS.LBÒ oî Ú- Nodeó  foò  morå detaileä information)® Foò example¬ CCPCFG.ZRÌ ió  onå  thaô telló  JetLDÒ ho÷ tï deposiô thå absolutå CCÐ codå thaô iô generateó  directlù intï thå XBIOÓ raí imagå oæ thå CCÐ iî bankeä memorù (froí whicè iô ió  loadeä oî eacè warí boot)® Á similaò CFÇ filå coulä bå writteî tï telì JetLDÒ ho÷ tï instalì thå ne÷ CCÐ ontï thå systeí trackó oæ thå currenô drivå-Á disk¬ buô sï faò  nï onå haó donå this® É woulä bå happù tï providå thå CCPCFÇ  modulå  tï XBIOÓ  owneró  whï woulä likå iô oò tï otheró whï woulä likå tï uså  iô  aó  á modeì foò writinç otheò CFÇ fileó (senä må á formatteä disë witè youò copù  oæ JetLDR¬ returî mailer¬ etc.). ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­- JetLDÒ foò Ú-Systemó (ZCPR3)¬ Versioî 1.00 Copyrighô (c© 198¸ Bridgeò Mitchell Syntax: JetLDR [du:][library][.lbr] member1.typ member2.typ ... or JetLDR [du:]file1.typ [du:]file2.typ [du:]file3.typ ... ENV - environment FCP - flow commands IOP - input/output RCP - resident commands NDR - named directories Z3T - terminal capabilities ZRL or REL - module in SLR or MS-relocatable (REL) format with member name: RCP, FCP, IOP, CCP, CP3, DOS, DO3, BIO, CFG or BSX ŠNotes: If first file is a library, extract remaining files from it. An ENV file must be the first loaded. Preceed special modules (DOS, RSX, BSX, ...) with appropriate CFG file. Use Path: YES Root Only: NO Scan Current: YES Explicit Directory: A0: ------------------------- Figure 1. This is the internal help screen displayed by the command "JETLDR //". It shows how flexible a package loader JetLDR is. ----------------------------------------------------------------------------- [This article was originally published in issue 42 of The Computer Journal, P.O. Box 12, South Plainfield, NJ 07080-0012 and is reproduced with the permission of the author and the publisher. Further reproduction for non- commercial purposes is authorized. This copyright notice must be retained. (c) Copyright 1990, 1991 Socrates Press and respective authors]