NULU.DOC Documentatioî foò NULU.COM aó oæ 11/01/85 Versioî 1.5 NULU.COÍ anä NULU.DOà arå botè Copyrighô 198´ anä 1985¬ bù Martiî Murray¬  P.O®  Boø  35972¬  Dallas¬  TØ 75235®  Botè maù bå useä freelù  foò  non-commerciaì purposes¬  buô neitheò maù  bå  sold¬ includeä iî á packagå foò sale¬  oò useä aó aî incentivå tï  buy¬ bù   anù  person¬   organizatioî  oò  corporatioî  withouô  prioò arrangemenô   witè   thå   copyrighô   holder¬   Martiî   Murray® Furthermore¬ Martiî Murraù wilì beaò nï responsibilitù foò losseó resultinç  froí  thå  uså  oò  inabilitù  tï  uså  thió  program® NULU.COÍ  maù noô bå distributeä withouô NULU.DOC¬  noò  maù  thå copyrighô  messageó bå removeä froí eitheò filå noò causeä tï noô bå displayed. ACKNOWLEDGEMENTS Thió  prograí  woulä noô havå beeî possiblå werå iô noô  foò  thå eleganô worë oæ Garù P® Novosielské anä thoså otheró workinç witè thå LÕ librarù structure. Additionally¬ É woulä likå tï thanë thå peoplå whï havå supporteä thå developmenô oæ NULÕ iî á varietù oæ ways¬ froí suggestionó tï financiaì   contributions®   Alì   commentó   (good¬   baä   anä disastrous© arå welcome®  Speciaì thankó tï Keitè W® Antclifæ oæ Mead¬  Washingtoî foò hió developmenô oæ NULUTERM.ASM¬  á patcheò overlay¬  anä tï Roî Fowleò oæ Nightowì Softwarå foò hió graciouó permissioî tï includå MLOAD23.COÍ iî thå NULÕ releaså library. Honoró  foò  Couragå gï tï Dennió Recla¬  Norí Gregory¬  anä  Jií Switú  foò havinç thå gutó tï "risë everything¢ bù  testinç  NULÕ anä offerinç suggestionó anä pointinç ouô bugs. INTRODUCTION NULÕ ió á completå replacemenô foò LÕ anä LSWEEP® Weighinç iî aô 15k¬ iô includeó alì featureó oæ botè programó anä theî some® Iô features: Twï operatioî modeó witè á fulì menõ foò each LÕ stylå CRà supporô anä verification Viewinç  anä  printinç  oæ membeò fileó anä  disë  files¬ unsqueezinç wheî necessary Extractioî  oæ  membeò fileó witè aî optioî tï  unsqueezå wherå appropriate Biggeò libraries¬  uð tï 80° memberó oò morå dependinç oî availablå memory Automatiã membeò sorting¬  alì memberó kepô sorteä aô alì times Faster reorganization Enhanced error handling Š        Swapped disk handling Automatic self-verification Access to deleted members Access to read/only libraries Wildcard library processing Optional read/only patch CP/M Plus support General compatibility with LU and NSWEEP syntax Numerous user patches DIFFERENCES BETWEEN NULU 1.5 AND NULU 1.1 NULÕ  1.µ incorporateó severaì significanô changes¬  noô leasô oæ whicè arå thå buç fixes® Versioî 1.± haä severaì bugs¬ includinç occasionaì impropeò extractioî oæ largå files¬  anä clobberinç oæ byteó iî directorù entrù membeò names®  Alì knowî bugó havå beeî addresseä aó oæ thå ne÷ release® (Actually¬ thå extractioî "bug¢ waó  duå  tï  onå  oæ  thå  bugó  iî  CP/Í  thaô  effecô  unusuaì combinationó oæ direcô anä sequential filå access®  Iæ yoõ watcè carefully¬ yoõ wilì seå BDOÓ re-allocatå useä blockó oæ thå disk¬ iî descendinç order¬ nï less!) Iæ  yoõ  attempô  tï  makå  changeó tï á  librarù  filå  thaô  ió logically read/only, NULU will display the message: Library is READ-ONLY. Modify anyway? (y/n) anä wilì waiô foò yoõ tï saù yeó oò no®  Iæ yoõ saù no¬ theî thå operatioî yoõ werå attemptinç wilì bå cancelled® Iæ yoõ saù yes¬ yoõ wilì bå ablå tï makå changeó anä wheî yoõ closå thå  library¬ the file will be read/only once again. Therå havå beeî other¬  morå visiblå changes® Thå disë interfacå haó  beeî  expandeä sï thaô severaì commandó thaô useä  tï  applù onlù  tï librarù membeò files¬  caî no÷ alsï worë oî disë  files® Theså commandó include¬  -D¬  -P¬ -Ö anä á ne÷ command¬ -S¬ whicè performó  á  limiteä strinç search®  Foò example¬  tï  deletå  á library member the command is still: -d filespec but you can also delete disk files with: -d du:filespec wherå  thå  drive/useò  combinatioî informó  NULÕ  thaô  yoõ  arå talkinç abouô disë fileó insteaä oæ librarù members®  (Notå thaô thå  -Ú commanä haó beeî re-assigned.© Thió syntaø applieó tï thå otheò commandó listeä above¬ aó well. Additionally¬  É havå madå aî efforô tï brinç NULÕ 1.µ furtheò iî linå   witè  LÕ  syntaø  anä  operation¬   especiallù  LU310.COM® Therefore¬  iî additioî tï otheò changes¬ thå useò wilì finä thaô thå  -Í commanä foò thå NULÕ Commanä Menõ haó beeî changeä tï  -È Šfoò Help. NULU Tï thå besô oæ mù knowledge¬  NULÕ wilì ruî oî anù systeí runninç CP/Í 2.ø oò higher¬  howeveò iô haó onlù beeî testeä bù må oî thå Osbornå ± anä thå Osbornå Executivå computers®  Iô ió writteî iî 808° compatible¬ Z8° assembly language. Á  completå  discussioî oæ thå naturå anä advantageó  oæ  librarù fileó ió beyonä thå scopå oæ mù endurance¬  howeveò á shorô recað ió iî order. Á  librarù  filå ió á singlå CP/Í filå whicè maintainó ± oò  morå smalleò  fileó  aó itó members®  Eacè filå ió writteî  intï  thå librarù anä recordeä iî thå librarù directory®  Afteò  that¬  iô maù bå accesseä foò viewing¬  printing¬  oò execution¬  oò maù bå extracteä  froí thå librarù tï assumå thå statuó oæ á stand-alonå filå oncå again. Thå reasonó foò doinç thió arå many®  Foò one¬  undeò CP/Í  eacè filå  occupieó á minimuí amounô oæ disë space®  Thió amounô  caî rangå  froí 1ë tï 16k¬  dependinç oî thå system®  Eveî thougè  á filå  maù  onlù  bå ± bytå iî length¬  iô wilì stilì  occupù  thå minimuí  requireä  amount»  thå  resô oæ  thå  spacå  ió  wasted® Puttinç  theså fileó iî á librarù minimizeó thå possiblå wastå tï 12· bytes. Eacè filå alsï occupieó á directorù entry®  Oî mosô floppù  disë systems¬  thå maximuí numbeò oæ filå entrieó peò disë ió 64®  Bù includinç  á  filå  iî á librarù thå directorù spacå iô  useä  tï occupù ió freeä foò anotheò file. Additionally¬  usinç  librarù  fileó caî simplifù thå procesó  oæ categorizatioî  bù  subsuminç severaì fileó oæ similaò  typeó  oò subjectó intï onå file. However¬  therå arå alsï dangeró associateä witè usinç libraries® Thå maiî onå ió thaô iæ á librarù filå ió losô oò damaged¬ alì oæ thå membeò fileó arå losô aó well®  Thå solutioî tï thió probleí caî  bå  summeä  uð iî onå  wordº  BACKUP®  NULÕ  probablù  isn'ô perfect¬ anä wå alì kno÷ thaô disë systemó aren't¬ sï backuð youò importanô  libraries¬  please®  É  don'ô  wanô tï  heaò  anù  saä stories. Almosô  aó  importanô  aó  backinç uð librarieó  ió  thå  uså  oæ discretioî wheî decidinç whaô tï puô intï them®  Let'ó facå  it¬ iæ  á filå ió iî á librarù iô ió noô aó easù tï geô to®  Iæ  yoõ neeä tï geô tï á filå everù 1µ minutes¬  iô probablù shouldn'ô bå iî á librarù excepô aó á backuð measure. AÎ ASIDÅ CONCERNINÇ FILESPECS ŠWheî  specifyinç  á  filespec¬  wildcardó  maù  bå  useä  freely¬ however¬  unlikå  mosô programs¬  NULÕ doesn'ô insisô thaô á  ".¢ separatå  thå  filenamå  froí thå  filetype®  Foò  example¬  thå filespeã  "**¢  meanó thå samå thinç aó "*.*¢ tï  NULU®  Oî  thå otheò hand¬  thå filespeã "FRED.TXT¢ shoulä bå typeä iî jusô likå that®  "FREDTXT¢ woulä makå NULÕ thinë thaô nï filetypå haä beeî specified®  Thå rulå ió simpleº uså á doô anù timå yoõ like¬ buô iô ió onlù strictlù necessarù wheî iô ió needeä foò clarity. Wheî  specifyinç  á  drivå and/oò useò areá thå  syntaø  ió  verù liberal®   "A15:**¢  meanó  thå  samå  aó  "15/A:*.*"¬  aó  doeó "1A5:**"®  Thå  coloî ió absolutelù necessary®  Iæ á  differenô useò areá ió desireä foò thå defaulô drive¬  thå drivå  specifieò maù  bå  omitted¬  aó iî "15:**"¬  jusô aó thå useò areá  maù  bå omitteä aó iî "A:**". Iæ  á  drive/useò  specificatioî  ió made¬  buô  nï  filespeã  ió indicated¬ á filespeã oæ ????????.??¿ ió generated® Thereforå tï indicatå thå defaulô drive¬  currenô useò area¬ anä á filespeã oæ ????????.???¬ jusô typå á coloî bù itselæ (e.g.¬ ":"© ! NULU OPERATION Wheî  NULÕ loads¬  iô automaticallù verifieó itó owî  CRC®  Thió procesó  causeó á 2.µ seconä delaù oî mù 4mhú machine®  However¬ becauså oæ thå safetù thaô thió featurå affords¬  É hopå thaô yoõ wilì finä iô tï bå á reassurinç pause®  Notå thaô thå CRà ió noô affected by normal user patches. NULÕ  maù bå invokeä witè oò withouô á commanä tail®  Á  commanä taiì caî consisô oæ anù combinatioî oæ valiä NULÕ operatoró uð tï 12¸  characteró  (thå limiô imposeä bù thå  CCP®  Oncå  NULÕ  ió running¬ commanä lineó caî bå aó lonç aó 25´ characters.) Aó  iî LU¬  alì NULÕ commandó arå precedeä bù á dash®  Thió ió á copù oæ thå menõ foò thå commanä modå oæ operation: -A Add members -B Brief toggle -C Close the library -D Delete members/files -E Extract members -F Filesweep mode -G Get filespec -H Help -K Krunch library -L List members -N Rename members -O Open a library -P Print members/files -Q Unsqueeze members -R Replace members -S String search -T Replace/Add members -U Drive/User change -V View members/files -W Wildcard open -X Exit NULU -Y Disk directory -< Redirect input -> Redirect output Commandó  maù  bå strunç together¬  eacè terminateä bù  á  space® Theù arå processeä lefô tï right®  Alì characteró arå  converteä tï uppeò case. ŠThå  defaulô drive/useò areá arå displayeä alonç witè thå namå oæ thå  currenô commanä modå eacè timå thå consolå ió  prompteä  foò input. Thå  commandó  wilì  bå explaineä iî ordeò  oæ  theiò  appearancå above®   Alì   itemó  iî  [squarå  bracketsÝ  indicatå  optionaì parameters®  Thå  worä  "filename¢ referó tï aî unambiguouó  filå specification¬  whilå thå terí "filespec¢ referó tï á potentiallù ambiguouó  filå specification®  Filespeã parameteró encloseä  iî (parenthesis© indicatå referenceó tï deleteä membeò files® Threå dotó ("..."© afteò á parameteò indicatå infinitå repetition. Durinç thå executioî oæ mosô commandó whicè receivå aî  ambiguouó filespeã  aó  á  parameter¬  enterinç á ^à aô  thå  consolå  wilì interrupt the current process. COMMANDS -A       ADD MEMBERS          Syntax: -a filespec[ filespec...]          Uså  thió commanä tï adä fileó froí disë tï thå  currenô          library®  NULÕ wilì makå á serieó oæ passeó througè thå          directory¬  addinç  fileó aó iô goes¬  untiì thå lisô oæ          matchinç  fileó ió exhausted®  Iæ á  matchinç  filenamå          alreadù  existó aó aî activå membeò iî thå library¬  itó          namå wilì bå displayeä anä thå filå wilì noô bå added.          Iî  alì filå additioî anä replacemenô operations¬  iæ  á          deleteä  entrù  oæ identicaì sizå caî bå  located¬  thaô          disë spacå anä directorù entrù wilì bå useä ratheò  thaî          allocatinç  ne÷ spacå foò thå file®  Thió meanó thaô iô          wilì  bå  necessarù tï reclaií wasteä  disë  spacå  lesó          often.          An LU style CRC will be generated for each file added. -B       BRIEF TOGGLE          Syntax: -b          Thió toggleó thå promptinç mode® Thå releaså versioî oæ          NULÕ ió setuð tï prinô thå fulì namå oæ thå currenô modå          foò  á prompt¬  aó iî "-Add members A0:>"®  Iæ BRIEÆ ió          turneä oî thå useò wilì simplù seå "-Á A0:>"®  NULÕ maù          bå  permanentlù patcheä tï defaulô tï BRIEÆ OΠ oò  OFF®          Seå NULÕ MODIFICATION. -C       CLOSE THE LIBRARY          Syntax: -c          Thió  commanä  closeó thå currenô library¬  writinç  itó          directorù  tï disë iæ anù changeó havå beeî madå tï  thå          directory®  Thå  librarù  directorù  ió  NEVEÒ  writteî          excepô wheî thå librarù ió closed¬  sï bå surå tï dï it® Š         Iæ  yoõ forgeô tï dï sï anä removå thå disk¬  NULÕ  wilì          prompô  yoõ  foò  thå disë agaiî  anä  wilì  attempô  tï          recover.          Somå  otheò operationó thaô causå thå currenô librarù tï          bå closeä are:           -k, -o, -w, -x -D       DELETE MEMBERS/FILES          Syntax: -d filespec[ filespec (filespec)...] Syntax: -d du:filespec[ du:filespec...]          Iæ thå drive/useò specificatioî ió included¬  thå DELETE          functioî  wilì  applù  tï fileó oî  disk¬  otherwiså  iô          applies to library member files.          Membeò  fileó matchinç thå giveî filespeã wilì bå  giveî          deleteä statuó iî thå librarù directory¬ excepô wheî thå          filespeã  ió  encloseä iî  parenthesis®  Iî  thaô  caså          matchinç  deleteä  memberó wilì bå giveî activå  status®          Thaô is¬  theù wilì bå undeleted®  Iæ thå filenamå oæ á          matchinç deleteä membeò filå alreadù existó aó aî activå          member¬ thå filenamå wilì bå displayeä anä thå filå wilì          noô bå undeleted.          Iæ  thå  membeò filå beinç deleteä haó á  sizå  oæ  zerï          sectors¬  itó  entrù  wilì bå entirelù REMOVEÄ froí  thå          library directory, thereby creating a new, free entry. -E       EXTRACT MEMBERS          Syntax: -e filespec[=newfilespec filespec du:filespec...]          Uså  thió commanä tï extracô activå  membeò  files®  Iæ          extractioî tï thå currenô drive/useò areá ió desired¬ nï          furtheò syntaø ió necessary® Tï indicatå anotheò drive¬          however¬  á destinatioî drive/useò areá maù bå  includeä          in the source filespec. Example:          -e a5:**          woulä  extracô alì activå memberó tï drivå A¬  useò areá          5®  Fileó  maù  bå  renameä aó welì  aó  redirecteä  bù          indicatinç  á filespeã alonç with¬  oò iî  placå  of¬  á          drivå  useò  specificatioî  followinç  aî  equaló  sign®          Examples:          1. -e *asm=*bak          2. -e *asm=5:*txt          3. -e fred.txt=sam.txt jane.inf=c8:girls.dbf          Thå exampleó woulä producå thå followinç results:          1® Extracô alì fileó witè á typå oæ .ASÍ tï thå defaulô          drive/useò renaminç theí witè thå filetypå oæ .BAK.          2® Extracô alì fileó oæ typå .ASÍ tï useò areá µ oæ thå Š         defaulô drive¬ renaminç eacè witè thå .TXT filetype.          3®  Extracô  thå  membeò filå FRED.TXÔ tï  thå  defaulô          drive/useò  undeò thå namå oæ SAM.TXT¬  anä extracô  thå          membeò filå JANE.INÆ tï useò areá ¸ oæ drivå Cº witè thå          filenamå GIRLS.DBF.          Thå  twï  redirectioî  ruleó tï remembeò areº  1©  iæ  á          destinatioî  filespeã ió entereä iô cannoô bå  anù  lesó          ambiguouó thaî thå sourcå filespec¬ i.e.¬ "*asm=*bak¢ ió          valiä whilå "**=*bak¢ ió noô valid»  anä 2© anù filespeã          followinç  aî  equaló  sigî takeó  precedencå  oveò  anù          drive/useò  specificatioî iî thå sourcå filespec¬  i.e.¬          "-å  6:*asm=*bak¢ woulä extracô alì membeò fileó tï  thå          currenô drive/user¬  renaminç them¬ anä woulä ignorå thå          "6:" specification.          Durinç  extraction¬  á CRà ió generateä foò  eacè  file®          Afteò  thå destinatioî filå haó beeî closed¬  thå CRà sï          generateä ió compareä tï thå CRà foò thaô librarù membeò          thaô waó storeä iî thå librarù directory¬  iæ thaô valuå          waó  non-zero®  Iæ thå resultó arå  noô  identical¬  aî          erroò  messagå wilì bå displayeä beforå thå nexô  membeò          filå  oò  filespeã  wilì bå  processed®  Thå  erroneouó          destinatioî  filå wilì noô bå deleteä froí disë bù  NULÕ          aó á resulô oæ thió error. -F       FILESWEEP MODE          Syntax: -f          Thió commanä placeó NULÕ iî itó seconä operationaì modeº          thå  filesweeð  mode®  Thió  allowó thå  useò  tï  movå          througè thå directorù oæ activå membeò fileó aó iæ  theù          werå  individuaì fileó beinç examineä bù á prograí  likå          NSWEEP®   Thå  filesweeð  mode'ó  commanä  lisô  ió  aó          follows:          A Next member B Previous member          C Close library D Delete member          E Extract member F Find member          L Log new drive/user M Mass operations          O Open new library P Print member          Q Unsqueeze member R Rename member          T Tag member U Untag member          V View member W Wildcard rename          X Exit NULU Y Disk directory          Z NULU command mode ? Help!          Becauså oæ thå extremå similaritù betweeî theså commandó          anä  thå commandó oæ NULU'ó commanä mode¬  onlù á  shorô          descriptioî  oæ  eacè commanä wilì bå  giveî.          Á -- Advancå tï nexô member           (spacebar¬  cr¬  oò  læ  wilì  producå  thå  samå                 result)          Â -- Bacë uð tï previouó member Š         Ã -- Closå thå currenô library          Ä -- Deletå currenô membeò file          Å  -- Extracô currenô membeò filå           (prompô allowó redirection)          F -- Find first member matching input filespec          Ì -- Change drive/user defaults           (returnó filå pointeò tï thå toð oæ thå filå lisô           and untags all member files)          M -- Mass operations on all tagged files           (allowó    Deletion¬     Extraction¬    Printing¬                 Unsqueezing¬ or Viewing)          O -- Open new library (closes the current library)          Ð -- Dumpó thå currenô membeò filå tï LSTº                 (unsqueezeó iæ needed)          Ñ  -- Extracô  currenô  membeò  file¬   unsqueezinç  iæ                 necessarù (prompô allowó redirection)          R -- Rename current member file          T -- Tag current member          Õ -- Untag current member          Ö -- Vie÷ currenô membeò filå (unsqueezeó iæ needed)          ×  -- Wildcarä  renamå (promptó foò oldnamå & newname)          X -- Exit NULU (closes all files)          Y -- Get disk directory for default drive/user           (returnó filå pointeò tï thå toð oæ thå filå lisô           and untags all member files)          Ú  -- Returî  tï NULÕ commanä  modå           (currenô librarù remainó open)          ? -- Print the filesweep mode menu          If¬  wheî  thå  filesweeð modå ió entered¬  oò  afteò  á          librarù  haó  beeî  closed¬   therå  ió  noô  á  librarù          currentlù open¬ thå filesweeð modå wilì prompô with:          No library open.          and will accept only the following commands:          L,O,X,Y,Z,?          Likewise¬  iæ á librarù ió opeî buô onlù haó á directorù          witè nï otheò activå members¬ thå message          No member files.          wilì bå printeä anä onlù thå commandó listeä above wilì          be accepted.          Durinç filesweeð operation¬  eacè filå wilì bå listeä iî          thå  ordeò iî whicè iô ió founä iî thå directory¬  alonç          witè thå sizå iî Ë thaô thå filå woulä occupù iæ iô werå          extracteä tï thå defaulô drive.          Iæ  thå filesweeð modå ió terminateä bù á returî tï  thå          NULÕ  commanä  mode¬  anù commandó thaô followeä thå  -Æ          commanä  oî  thå  previouó NULÕ  commanä  linå  wilì  bå Š         executed. -G       GET FILESPEC          Syntax: -g filespec          NULÕ  wilì searcè foò thå filespeã indicated®  Iæ iô ió          found¬  processinç  continues®  Iæ  not¬  thå  useò  ió          prompteä  tï inserô thå disë containinç  thaô  filespec®          Thå  drivå ió theî reseô anä searcè again®  Thå prograí          wilì  prompô  foreveò  untiì  iô  receiveó  thå   propeò          filespeã  oò  untiì  á ^à ió entered¬  forcinç  NULÕ  tï          continuå withouô thå filespeã beinç found.          Thió  commanä caî bå usefuì wheî attemptinç  tï  controì          NULÕ  througè  á submiô utilitù likå  DRI'ó  SUBMIT.COM®          For example, one might type:          nulu -o a:asm -g b5:-work.005 -e b10: -g a0:-5.005 -x          Afteò loading¬  NULÕ woulä opeî á librarù calleä ASM.LBÒ          oî  drivå Aº  iî thå currenô useò area®  Nexô iô  woulä          searcè  useò areá µ oæ drivå Bº  foò filespeã  -WORK.00µ          untiì  iô  waó  found®  Theî alì  activå  membeò  fileó          woulä  bå  extracteä  tï  useò  areá  1°  oæ  drivå  B:®          Finally¬ NULÕ woulä searcè useò areá ° oæ drivå Aº foò á          filespeã  calleä  -5.00µ untiì found®  Theî  NULÕ  woulä          terminate®  Noticå herå thaô thå ASM.LBÒ didn'ô havå  tï          bå  closeä  beforå  thå searcè foò  thå  finaì  filespeã          becauså   nï  changå  haä  beeî  madå  tï  thå   librarù          directory®  Iæ  á changå haä beeî made¬  afteò thå  ne÷          filespeã haä beeî loaded¬  NULÕ woulä havå demandeä  thå          disë witè ASM.LBÒ bacë sï iô coulä updatå thå directory®          Thereforå   thå  GEÔ  operatioî  woulä  bå   effectivelù          negated. -H       HELP          Syntax: -h          Print the command mode menu. -K       KRUNCH LIBRARY          Syntax: -k[ -:       WAIT FOR RETURN          Syntax: -: -failure mode          Thió  commanä  wilì  forcå NULÕ tï waiô foò  thå  RETURÎ          (0dh© characteò tï bå inpuô tï thå consolå device® Iæ á          RETURÎ ió received¬ thå balancå oæ thå commanä linå wilì          bå ignored®  Iæ á ^à ió entered¬ thå remaininç commandó          on the line will be executed. -;       COMMENT          Syntax: -; comment about this kludge of a JCL          Thió  commanä  wilì  causå  NULÕ  tï  ignorå  alì   texô          appearinç afteò thå commanä oî thå samå physicaì commanä          line. ----------------------------------------------------------------- ->       REDIRECT OUTPUT          Syntax: -> filename          Syntax: ->          Witè thå firsô forí oæ thió command¬ NULÕ outpuô wilì bå          senô tï thå filenamå indicated®  Thå defaulô filetypå oæ          ".NOF¢ wilì bå useä iæ nï filetypå ió specified® Iæ thå          filå alreadù exists¬  iô wilì bå deleted®  Alì  speciaì          characteró thaô thå useò maù havå patcheä intï NULÕ (seå Š         below¬  NULÕ  MODIFICATION© wilì bå senô tï thå filå  aó          well¬ witè thå exceptioî oæ thå EOÆ character¬ 2¶ (1ah)®          Thå  onlù  outpuô noô echoeä tï thå filå wilì bå  outpuô          causeä  bù viewinç oò printinç á membeò file®  Eveî  iæ          thå  consolå  haó beeî turneä ofæ bù aî  NCÆ  file¬  alì          consolå outpuô wilì continuå tï bå senô tï thió file.          The filename passed must be unambiguous.          Undeò  thå  seconä  forí oæ thió  command¬  thå  currenô          outpuô file¬ iæ anù wilì bå closed® Wheî NULÕ ió causeä          tï  terminate¬  thå currenô outpuô filå ió closeä  alonç          with the current library, if any. ERROR HANDLING NULÕ shoulä neveò crasè tï CP/Í anymore®  Wheî NULÕ signó on¬ iô redirectó  thå  warí booô BIOÓ vector¬  therebù  preventinç  NULÕ terminatioî  duå tï BDOÓ errors®  Undeò CP/Í Plus¬  iô goeó eveî further¬  shuttinç dowî thå consolå erroò messages¬ handlinç theí internally®   Therefore¬   iæ  NULÕ  attemptó  tï  perforí  somå operatioî  oî  á  drivå  wherå nï  disë  ió  mounted¬  onå  coulä reasonablù  expecô (oî á 2.² system© foò thå BIOÓ tï  issuå  somå erroò  message®  Thå useò theî hitó RETURÎ oò ^à anä NULÕ shoulä recover®  Iô maù thinë thaô thå disë waó full¬ wheî therå reallù wasn'ô  onå  therå aô all¬  buô iô shoulä stilì takå  thå  propeò course of action needed to recover. ERROR MESSAGES Most NULU error messages are of the form: ERROR XX: Explanation wherå  "XX¢  ió somå numbeò froí ° tï 25µ anä "Explanation¢ ió  á cluå aó tï thå naturå oæ thå error® Eacè erroò messagå ió listeä below¬  alonç  witè aî explanation®  Suggestionó abouô  wayó  tï handlå thå error are given where appropriate. ERROR 1: reading unwritten data Problem:       Á  sectoò  requireä tï gaiî accesó tï  á  filå  ió                indicated by CP/M to be unwritten. Solution:      Thå  librarù  directorù  oò  perhapó  thå  librarù                itselæ haó becomå trasheä aô somå point® Deletinç                thå  entrù  anä KRUNCHinç wilì probablù rendeò  iô                harmless¬  buô  thå  safesô courså tï takå  ió  tï                obtaiî á fresè copù oæ thå library. ERROR 2: disk full Problem: Thå  librarù disë becamå fulì durinç filå additioî                oò  KRUNCHinç  oò  thå  destinatioî  disë  oæ   aî                extractioî commanä becamå full. Solution:      Iæ  thå  erroò  occurreä  durinç  KRUNCHing¬  NULÕ Š               shoulä havå recovereä bù itself¬ reopeninç thå olä                library®  Iæ iô diä noô recover¬ theî yoõ removeä                thå  originaì disë beforå thå KRUNCÈ waó  completå                oò á seriouó reaä erroò occurred.                Iæ  thå erroò occuró durinç filå additioî  tï  thå                library¬  operatioî shoulä noô bå impaired¬ buô nï                fileó  thaô requireä additionaì disë spacå caî  bå                addeä  tï  thå  librarù untiì somå disë  spacå  ió                cleared®  Notå thaô deleteä entrieó caî stilì  bå                overwritteî  bù incominç fileó aó lonç aó thå filå                sizeó  match®  Thå incominç filå thaô causeä  thå                erroò wilì bå recordeä iî thå librarù directorù aó                á deleteä entry®  Iæ thå erroò occuró aó á  resulô                oæ  attemptinç tï replacå á member¬  thå  originaì                librarù  membeò shoulä bå unharmeä anä lefô aó  aî                activå member.                Iæ  thå  erroò  occuró durinç filå  extractioî  oò                unsqueezinç   thå  destinatioî  filå  ió   deleteä                becauså iô ió aî incompletå file®  Extractioî caî                continue as before. ERROR 4: reading unwritten data Seå  ERROÒ 1®  Thió ió thå samå excepô thaô  BDOÓ mentioned that an entire extent was missing. ERROR 5: can't make file Problem:       Aî  attempô  waó madå tï creatå á filå oî  á  disë                with no free directory entries. ERROR 10: media changed Problem:  Yoõ  pulleä  thå diskettå ouô iî thå middlå  oæ  á                crucial operation. Solutionº  Don'ô  dï that®  Iô ió probablù aî unrecoverablå error. ERROR 11: disk i/o error Problem: Yoõ  arå probablù runninç undeò CP/Í Pluó  iæ  yoõ                geô  thió  message®  Iô meanó thaô thå  operatinç                systeí detecteä á physicaì probleí witè youò  disë                and the read or write failed. Solution:      Trù iô again®  É havå recovereä froí thió typå oæ                error by persistence. ERROR 12: disk r/o Problem: Youò operatinç systeí probablù discovereä thaô yoõ                have a write-protect tab on your diskette. Solution:      Remove it. ERROR 14: bad drive Problem:       Aî  invaliä drivå foò youò systeí waó choseî  (seå                below¬  NULÕ MODIFICATION© oò á letteò higheò thaî                "P" was indicated. Solution:      Choose another drive or re-patch NULU. ŠERROR 17: password error Problem: Yoõ  trieä  tï accesó á filå foò whicè á  passworä                waó  required®  NULÕ doeó noô supporô  accesó  tï                such files. ERROR 18: file exists Problem: Yoõ  attempteä  tï KRUNCÈ á librarù froí onå  useò                areá intï á differenô onå iî whicè á filå witè thå                same name already resided. ERROR 19: ambiguity error Problem:  Thió meanó thaô yoõ entereä aî ambiguouó  filespeã                wherå  aî  unambiguouó filenamå waó  required¬  oò                thaô thå destinatioî filespeã iî aî extractioî  oò                unsqueezå  commanä  waó  lesó ambiguouó  thaî  thå                sourcå  filespec®  Seå  -Å  EXTRACÔ  MEMBERÓ  foò                complete details. ERROR 70: file table full Problem: Yoõ attempteä tï opeî onå morå NCÆ filå thaî  youò                nesting patch supported. See NULU MODIFICATION. ERROR 74: checksum error Problem:       Durinç  thå  unsqueezinç oæ á file¬  thå  internaì                checksuí  generateä  diä noô  matcè  thå  expliciô                checksuí  stateä  iî thå file'ó  squeezå  decodinç                table. Solution:      Geô á ne÷ copù oæ thå membeò file® Youró haó beeî                trashed somehow. ERROR 75: CRC error Problem:       Wheî eacè membeò filå ió addeä tï á library¬ á CRà                ió  createä  foò  iô  anä storeä  iî  thå  librarù                directory®  If¬  upoî extractioî oò  unsqueezing¬                thå  CRà generateä aô THAÔ timå doeó noô matcè thå                originaì CRà iî thå directory¬ thaô meanó thaô thå                sectoró  whereiî thaô librarù entrù  resideó  havå                becomå corrupted® Therå ió aî outsidå chancå thaô                thå  CRà entrù iî thå librarù directorù haó becomå                damageä  instead¬  howeveò  thaô  conditioî  woulä                probably also generate ERROR 107. ERROR 77: not enough memory Problem:       Aî  attempô  waó  madå tï opeî á  librarù  witè  á                directorù  toï  largå  tï bå  accounteä  foò  witè                available memory. Solution:      Opeî  thå librarù oî á computeò witè á largeò  TPÁ                anä  reorganizå  iô  sï iô caî bå handleä  bù  thå                smaller system. ERROR 78: user cancel Problem:       Nï problem®  NULÕ ió simply lettinç thå useò kno÷                whù   aî  operatioî  haó  beeî  cancelled®   Mosô                operationó  whicè worë oî ambiguouó filespecó  maù                bå  interrupteä  bù  enterinç á  ^à durinç  theiò Š               operation®  (Yoõ  maù havå tï holä thå keù dowî  á                while.©   Thå   KRUNCÈ  operatioî   maù   bå   sï                interrupted as well. ERROR 83: bad syntax Problem:       Impropeò syntaø waó used tï attempô somå operation. ERROR 85: file not found Problem:       Thå  filespeã indicateä foò somå  operatioî  coulä                not be located. ERROR 86: incompatible cp/m version Problem:       Aî  attempô waó madå tï ruî NULÕ oî á systeí  witè                a CP/Í versioî numbeò oæ lesó thaî 2.0. ERROR 100: bad library directory Problem:       Thå  filå  specifieä  coulä noô  bå  openeä  aó  á                librarù  file® Solution:      Thå  directorù coulä bå bad¬  buô mosô likelù  thå                filå  simplù isn'ô á library®  Checë iô ouô  witè                some disk editor like SPZ or EDFILE. ERROR 107: library directory CRC error Problem:       Thå  CRà thaô waó calculateä anä storeä  foò  thå                directorù  thå lasô timå thå librarù waó  modifieä                doeó noô matcè thå directorù CRà calculateä aó thå                library is opened this time. Solution:      Witè mosô libraries¬ thió erroò wilì bå valid® Iî                thaô case¬ thå onlù remedù ió tï obtaiî á ne÷ copù                oæ thå library® However¬ therå arå somå librarieó                thaô  werå createä witè LU¬  anä theî modifieä buô                neveò KRUNCHEÄ bù NULÕ 1.0®  Iî thaô case¬  iô ió                likelù  thaô thå old¬  originaì CRà storeä iî  thå                librarù  directorù  woulä  stilì  bå  there¬  eveî                thougè iô ió waù ouô oæ date®  Mù suggestioî  is¬                wheî  yoõ  firsô geô NULÕ 1.5¬  gï througè alì  oæ                youò  .LBÒ  files¬  iæ  yoõ werå  usinç  NULÕ  1.°                previously¬  anä KRUNCÈ them®  Thió waù yoõ  wilì                kno÷ lateò oî thaô thå CRCó storeä iî eacè librarù                shoulä alì bå accurate. ERROR 116: squeeze decode table error Problem:       Á  filå haó á squeezå decodinç table¬  buô aô somå                poinô thå tablå ió trasheä oò perhapó ió  missing® Solution:      Nonå really»  geô á ne÷ copù oæ thå file® Iæ youò                Datá Buffeò Sizå haó falleî belo÷ ¹ sectors¬  theî                thå  reasoî mighô bå thaô thå entirå decodå  tablå                could not be read into memory. ERROR XX: undefined Problem:       Unknown. Solution:      Writå   dowî  alì  informatioî  presenteä  oî  thå                terminal®  Thå numbeò followinç thå worä ERROÒ ió                especiallù important®  Geô thå informatioî tï  me®                Mail it or call and I will try to help. Š The most serious, non-recoverable error is: NULU CRC error whicè  caî occuò wheî NULÕ 1.µ ió firsô loaded®  Thió meanó thaô NULÕ faileä tï matcè itó owî CRC®  Yoõ neeä tï geô á fresè copy® Or perhaps you have tried some patch not described below...? NULU MODIFICATION Patcheó arå listeä iî thå ordeò iî whicè theù appeaò iî NULU.COM® Eacè  patcè  ió  explaineä  anä thå  defaulô  valueó  arå  listeä immediatelù  nexô  tï  thå  patcè  address®  Alì  addresseó  arå absolutå hexadecimal. Patch Default Explanation 00163h 50h Numbeò  oæ  characteró  eacè   fulì                               videï   linå  caî   contain®   Noô                               necessarilù  thå samå aó thå numbeò                               you can see. 00164h 50h Numbeò  oæ characteró visiblå oî  á                               line at any one time. 00167h  07h Thió  bytå indicateó thå numbeò  oæ                               fileó  thaô NULÕ caî havå  opeî  aô                               anù  onå time®  Thå baså numbeò ió                               ´ anä shoulä neveò falì belo÷ that®                               Thå valuå oæ ³ haó beeî addeä tï iô                               tï  allo÷  ³ leveì nestinç  oæ  NCÆ                               files®   Iæ   thå  NCÆ  valuå   ió                               increaseä oò  decreased¬  identicaì                               changeó  shoulä  bå  madå  tï  thió                               byte. (See Patch at 00220h.) 00168h 0010h Thió   obscurå  worä  controló  thå                               numbeò  oæ relocatablå  taskó  thaô                               caî   bå  controlleä  bù  thå  NULÕ                               memorù     managemenô     routines®                               Becauså eacè filå ió á  relocatablå                               task¬  thå  samå modificationó  foò                               thå previouó bytå applù here®  Thå                               baså  valuå  oæ thió worä ió  000dè                               anä  shoulä neveò falì  belo÷  thaô                               point. (See Patch at 00220h.) 0016ah 10h                Numbeò  oæ  contiguouslù   numbereä                               disë driveó iî youò system® Iæ yoõ                               havå driveó Á anä B¬ seô thió valuå                               tï  2®  Iô  wilì prevenô yoõ  froí                               accessing an invalid drive. 0016bh  10h Numbeò  oæ  contiguouó  useò  areaó                               thaô   NULÕ  wilì  bå  alloweä   tï                               access®  Undeò  normaì  CP/Í  2.2¬                               Turbo-Doó  oò  á  ZCPÒ  system¬   É                               understanä thaô thió numbeò caî  bå Š                              aó higè aó 20h®  Foò CP/Í Pluó  oò                               mosô  systemó  thaô  uså  time/datå                               stampinç  thió  numbeò  shoulä  noô                               exceeä 10h. 0019ch 0005h Thió  ió  thå addresó oæ  thå  BDOÓ                               vector® Alì operatinç systeí calló                               gï  througè thió address®  Iæ  yoõ                               havå somå weird¬  non-standarä CP/Í                               implementatioî  yoõ caî patcè  thió                               to try to make NULU work with it. 0021ch 00h               Seô  tï  á non-zerï valuå  tï  makå                               NULÕ READ/ONLY®  Nï operatoró wilì                               bå  executeä thaô coulä changå  thå                               librarù oò disë directorieó iî  anù                               way. 0021dh 00h               LU.COÍ   waó   seô   uð   tï   exiô                               automaticallù iæ á commanä taiì waó                               useä wheî LÕ waó invoked® Witè thå                               releaså  versioî oæ NULU¬  iô takeó                               thå -Ø commanä tï exit®  Seô  thió                               bytå tï á 01è tï geô iô tï acô likå                               LÕ  iî thió respect®  Thaô is¬  iô                               wilì   automaticallù   exiô   afteò                               executinç thå passeä commanä  tail¬                               iæ onå waó present. 0021eh 01h               Seô  tï  á 00è tï starô  NULÕ  witè                               BRIEÆ  modå  OÎ (lonç messageó  noô                               printed). 0021fh 01h Seô  tï zerï tï prevenô useró  froí                               beinç  ablå  tï  ESC,REÔ  froí  thå                               PROMPÔ  ANÄ CHAIÎ TÏ PREVIOUÓ  MODÅ                               promptó iî NCÆ files®  (Bå surå  tï                               alsï  changå  thå valueó aô  00167è                               and 00168h.) 00220h 03h Thió  bytå  indicateó  thå  nestinç                               leveì  alloweä  foò NCÆ  files®  É                               havå  nï ideá whaô thå uppeò  limiô                               is¬  buô  watcè  thaô  Datá  Buffeò                               Size! 00221h '-Y *LBR -O',0    Startinç herå arå 3¹ byteó iî whicè                               anù  valiä  NULÕ operatoró  maù  bå                               stored®    Thió   linå   wilì   bå                               automaticallù executeä wheî NULÕ ió                               loaded¬   eveî  beforå  anù   otheò                               parameteró  passeä  oî thå  commanä                               line® Thió mighô bå useä tï creatå                               á  versioî  oæ  NULÕ  that¬   afteò                               loading¬    setó   thå   drive/useò                               defaultó tï B0:¬  printó thå  menu¬                               scanó  thå drivå foò librarù files¬                               theî  switcheó tï thå opeî  librarù                               mode® Thaô commanä linå woulä looë                               likå this:                               -U B: -H -Y *LBR -O Š                               Noticå thaô alì characteró iî  thió                               linå  MUSÔ  bå  UPPEÒ  CASE®   Thå                               entirå linå MUSÔ bå terminateä bù á                               nulì  byte®   Onlù  3¹  byteó  arå                               availablå  foò  text...noô  á  bytå                               more®  Thå  40tè  bytå ió foò  thå                               null terminator. 0026fh 3ch Thió  ió  thå numbeò oæ lineó  thaô                               NULÕ wilì prinô oî eacè pagå durinç                               membeò filå printing®  Changå thió                               valuå  iî accordancå witè thå  linå                               printeò  patcè  below®  Seô iô  tï                               zerï  tï  havå  NULÕ  ignorå   linå                               counts altogether. Startinç aô 0024cè arå 5 datá areaó useä tï definå stringó needeä tï controì thå consolå attributes® Eacè strinç ió precedeä bù an identificatioî  bytå  anä á bytå indicatinç  itó  activå  length® Theî µ byteó arå availablå foò thå actuaì definition®  Thereforå á  totaì  oæ · byteó ió consumeä foò  eacè  videï  control®  Thå attributeó are¬ iî order: DIM or REVERSE VIDEO ON   (DIM is preferred) DIM or REVERSE VIDEO OFF UNDERLINING ON UNDERLINING OFF CLEAR SCREEN Each control becomes active as soon as it is patched in. Likewise¬  therå  ió onå strinç defineä foò thå LSTº  devicå thaô wilì bå issueä immediatelù beforå printinç á file®  Iô beginó aô 00271è anä haó thå samå formaô aó thå stringó above. FINAL NOTES Pleaså  reporô anù bugó oò problemó tï Martiî  Murray¬  P.O®  Boø 35972¬  Dallas¬  Tø 7523µ oò calì (214© 351-6117¬  EVENINGÓ  ANÄ WEEKENDÓ ONLY® Pleaså specifù thå versioî oæ NULÕ witè whicè yoõ arå  working® Aó always¬  donationó wilì bå gratefullù accepted® Iô tooë á loô oæ  worë tï producå NULÕ anä iæ yoõ enjoù iô anä iô benefitó you¬ don'ô hesitatå tï sho÷ youò appreciatioî witè á check¡  Noteº É nï longeò worë foò SYSTEÍ SOLUTIONS¬  sï please¬  nï checkó  madå ouô  tï  them®  É aí no÷ workinç foò INOVA¬  á  companù  foundeä specificallù  tï supporô 8-biô computeró runninç CP/M®  Looë foò ne÷  anä  excitinç  retaiì  productó  froí  thaô  source®   (Thå preceedinç haó beeî aî officiaì plug.)