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]