home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / UTILS / ARC-LBR / NULU10.HLP < prev    next >
Text File  |  2000-06-30  |  34KB  |  838 lines

  1. ;
  2.                     NULU 1.0 (10/01/84)
  3.  
  4. -- Introduction --    -------------------- Commands --------------------
  5.  C - Credits        1 - Operation        5 - Commands (M,N,O,P,Q)
  6.  E - Error Messages    2 - Commands (A,B,C,D,E)     M - Menu
  7.  F - Filespecs             A - Add Members         N - Rename Members
  8.  I - Introduction         B - Brief Mode         O - Open Library
  9.  R - Redirection          C - Close Library         P - Print Members
  10.        < Input             D - Delete Members         Q - Unsqueeze Members
  11.        > Output             E - Extract Members
  12.             3 - Commands (F)    6 - Commands (R,T,U,V,X,Y)
  13.                  F - File Sweep         R - Replace Members
  14.              4 - Commands (G,K,L)         T - Replace/Add Members
  15.                  G - Get Filespec         U - User/Drive Change
  16.                  K - Krunch Library         V - View Members
  17.                  L - List Members         X - Exit
  18.                              Y - Directory Display
  19. :C
  20.  
  21.                         NULU Version 1.0
  22.                          as of 10/01/84
  23.  
  24. NULU.COM  and  NULU.DOC  are  both  Copyright  1984,   by  SYSTEM 
  25. SOLUTIONS,  P.O.  Box 35972,  Dallas, TX  75235. Both may be used 
  26. freely  for  non-commercial purposes,  but neither may  be  sold, 
  27. included in a package for sale,  or used as an incentive to  buy, 
  28. by   any  person,   organization  or  corporation  without  prior 
  29. arrangement with the copyright holder,  SYSTEM SOLUTIONS,  or the 
  30. author  of this version,  Martin  Murray.   Furthermore,  neither 
  31. SYSTEM  SOLUTIONS nor Martin Murray will bear any  responsibility 
  32. for  losses  resulting  from the use or  inability  to  use  this 
  33. program.   NULU.COM may not be distributed without NULU.DOC,  nor 
  34. may the copyright messages be removed from either file nor caused 
  35. to not be displayed.
  36.  
  37.  
  38.  
  39.                         ACKNOWLEDGEMENTS
  40.  
  41. This  program  would not have been possible were it not  for  the 
  42. elegant work of Gary P. Novosielski and those others working with 
  43. the LU library structure.
  44.  
  45.  
  46.             REPORTING BUGS
  47.  
  48. Please  report any bugs or problems to Martin  Murray,  P.O.  Box 
  49. 35972, Dallas, Tx  75235 or call (214) 351-6117.
  50.  
  51. :I
  52.                           INTRODUCTION
  53.  
  54. NULU  is  offered  as a complete replacement for LU  and  LSWEEP.  
  55. Weighing  in  at 14k,  it includes nearly all  features  of  both 
  56. programs and then some.  It features:
  57.  
  58.     Two operation modes with a full menu for each
  59.     Viewing  and printing of member files,  unsqueezing  when
  60.                 necessary
  61.     Extraction of member files with an option to unsqueeze
  62.                 where appropriate
  63.     Bigger libraries, up to 800 members or more depending on
  64.                 available memory
  65.     Automatic member sorting, all members kept sorted at all
  66.                 times
  67.     Faster reorganization
  68.     Enhanced error handling
  69.     Access to deleted members
  70.     Optional read only mode
  71.     General compatibility with LU and NSWEEP syntax
  72.  
  73.  
  74.                  DIFFERENCES BETWEEN NULU AND LU
  75.  
  76. I  am aware of only one thing that LU does that NULU does not do.  
  77. LU  maintains  a  CRC for each member file and  for  the  library 
  78. directory  as a whole.   NULU doesn't do this at all.   In  fact, 
  79. NULU changes these CRC bytes to 00 as soon as it gets the chance.  
  80. In case you still want or need to run LU on a library modified by 
  81. NULU, LU will simply regard it as a library created by an earlier  
  82. LU version and will promptly set CRC's for the various members.
  83.  
  84.  
  85.  
  86. :F
  87.                   AN ASIDE CONCERNING FILESPECS
  88.  
  89. When  specifying  a  filespec,  wildcards  may  be  used  freely, 
  90. however,  unlike  most programs,  NULU doesn't insist that a  "." 
  91. separate  the  filename  from the  filetype.   For  example,  the 
  92. filespec  "**"  means the same thing as "*.*" to  NULU.   On  the 
  93. other hand,  the filespec "FRED.TXT" should be typed in just like 
  94. that.   "FREDTXT" would make NULU think that no filetype had been 
  95. specified.   The rule is simple: use a dot any time you like, but 
  96. it is only strictly necessary when it is needed for clarity.
  97.  
  98. When  specifying  a  drive and/or user area the  syntax  is  very 
  99. liberal.    "A15:**"  means  the  same  as  "15/A:*.*",  as  does 
  100. "1A5:**".   The  colon is absolutely necessary.   If a  different 
  101. user area is desired for the default drive,  the drive  specifier 
  102. may  be  omitted,  as in "15:**",  just as the user area  may  be 
  103. omitted as in "A:**".
  104.  
  105.  
  106.  
  107. If  a  drive/user  specification  is made,  but  no  filespec  is 
  108. indicated, a filespec of ????????.??? is generated.  Therefore to 
  109. indicate the default drive,  current user area, and a filespec of 
  110. ????????.???, just type a colon by itself (e.g., ":") !
  111.  
  112.  
  113. :1
  114.                          NULU OPERATION
  115.  
  116. NULU  may be invoked with or without a command tail.   A  command 
  117. tail can consist of any combination of valid NULU operators up to 
  118. 128  characters  (the limit imposed by the  CCP.   Once  NULU  is 
  119. running, command lines can be as long as 254 characters.)
  120.  
  121. As  in LU,  all NULU commands are preceded by a dash.   This is a 
  122. copy of the menu for the command mode of operation:
  123.  
  124.          -A Add members             -B Brief toggle
  125.          -C Close the library       -D Delete members
  126.          -E Extract members         -F Filesweep mode
  127.          -G Get filespec            -K Krunch the library
  128.          -L List members            -M Menu
  129.          -N Rename members          -O Open a library
  130.          -P Print members           -Q Unsqueeze members
  131.          -R Replace members         -T Replace/Add members
  132.          -U Drive/User change       -V View members
  133.          -X Exit NULU               -Y Disk directory
  134.          -< Redirect input          -> Redirect output
  135.  
  136.  
  137. Commands  may  be strung together,  each terminated by  a  space.  
  138. They  are processed left to right.   All characters are converted 
  139. to upper case.
  140.  
  141. The  default drive/user area are displayed along with the name of 
  142. the  current command mode each time the console is  prompted  for 
  143. input.
  144.  
  145. The  commands  will  be explained in order  of  their  appearance 
  146. above.    All  items  in  [square  brackets]  indicate   optional 
  147. parameters.    Filespec   parameters  enclosed  in  (parenthesis) 
  148. indicate references to deleted member files.   Three dots ("...") 
  149. after a parameter indicate infinite repetition.
  150.  
  151. :2
  152.  
  153. -A       ADD MEMBERS
  154.          Syntax: -a filespec[ filespec...]
  155.  
  156.          Use  this command to add files from disk to the  current 
  157.          library.   NULU will make a series of passes through the 
  158.          directory,  adding  files as it goes,  until the list of 
  159.          matching  files  is  exhausted.   If  matching  filename 
  160.          already exists as an active member in the  library,  its 
  161.          name will be displayed and the file will not be added.
  162.  
  163.          In  all file addition and replacement operations,  if  a 
  164.          deleted  entry  of identical size can be  located,  that 
  165.          disk  space and directory entry will be used rather than 
  166.          allocating new space for the file.   This means that  it 
  167.          will  be  necessary  to reclaim wasted disk  space  less 
  168.          often.
  169.  
  170.  
  171.  
  172. -B       BRIEF TOGGLE
  173.          Syntax: -b
  174.  
  175.          This toggles the prompting mode.  The release version of 
  176.          NULU is setup to print the full name of the current mode 
  177.          for  a prompt,  as in "-ADD MEMBERS A0:>".   If BRIEF is 
  178.          turned on the user will simply see "-A A0:>".   NULU may 
  179.          be  permanently patched to default to BRIEF ON  or  OFF.  
  180.          See NULU MODIFICATION.
  181.  
  182.  
  183.  
  184. -C       CLOSE THE LIBRARY
  185.          Syntax: -c
  186.  
  187.          This  command  closes the current library,  writing  its 
  188.          directory  to disk if any changes have been made to  the 
  189.          directory.   The  library  directory  is  NEVER  written 
  190.          except when the library is closed,  so be sure to do it.  
  191.          If  you forget to do so and remove the disk,  NULU  will 
  192.          prompt  you  for  the  disk again and  will  attempt  to 
  193.          recover, but no guarantees!  
  194.  
  195.          Some  other operations that cause the current library to 
  196.          be closed are:
  197.                -k, -o, -x
  198.  
  199.  
  200.  
  201. -D       DELETE MEMBERS
  202.          Syntax: -d filespec[ filespec (filespec)...]
  203.  
  204.          Member  files matching the given filespec will be  given 
  205.          deleted status in the library directory, except when the 
  206.          filespec  is  enclosed in  parenthesis.   In  that  case 
  207.          matching  deleted  members will be given active  status.  
  208.          That is,  they will be undeleted.   If the filename of a 
  209.          matching deleted member file already exists as an active 
  210.          member, the filename will be displayed and the file will 
  211.          not be undeleted.
  212.  
  213.  
  214.  
  215. -E       EXTRACT MEMBERS
  216.          Syntax: -e filespec[=newfilespec filespec...]
  217.  
  218.          Use  this  command to extract active member  files.   If 
  219.          extraction to the current drive/user area is desired, no 
  220.          further syntax is necessary.  To indicate another drive, 
  221.          however,   a   destination  filespec  may  be   included 
  222.          following an equals sign.  Example:
  223.  
  224.          -e **=a5:
  225.  
  226.          would extract all active members to drive A,  user  area 
  227.          5.   Files  may  be  renamed as well  as  redirected  by 
  228.          indicating  a  filespec along with,  or in place  of,  a 
  229.          drive user specification.  Examples:
  230.  
  231.  
  232.  
  233.          1.  -e *asm=*bak
  234.          2.  -e *asm=5:*txt
  235.          3.  -e fred.txt=sam.txt jane.inf=c8:girls.dbf
  236.  
  237.          The examples would produce the following results:
  238.  
  239.          1.  Extract all files with a type of .ASM to the default 
  240.          drive/user renaming them with the filetype of .BAK.
  241.          2.  Extract all files of type .ASM to user area 5 of the 
  242.          default drive, renaming each with the .BAK filetype.
  243.          3.   Extract  the  member file FRED.TXT to  the  default 
  244.          drive/user  under the name of SAM.TXT,  and extract  the 
  245.          member file JANE.INF to user area 8 of drive C: with the 
  246.          filename GIRLS.DBF.
  247.  
  248.          The  only  rule  to remember is that  if  a  destination 
  249.          filespec is entered it cannot be any less ambiguous than 
  250.          the  source filespec.   That is,  "*asm=*bak"  is  valid 
  251.          while "**=*bak" is not valid.
  252. :3
  253.  
  254. -F       FILESWEEP MODE
  255.          Syntax: -f
  256.  
  257.          This command places NULU in its second operational mode: 
  258.          the  filesweep  mode.   This  allows the  user  to  move 
  259.          through  the directory of active member files as if they 
  260.          were  individual files being examined by a program  like 
  261.          NSWEEP.    The  filesweep  mode's  command  list  is  as 
  262.          follows:
  263.  
  264.          A Next member              B Previous member
  265.          C Close the library        D Delete member
  266.          E Extract member           L Log new library
  267.          P Print member             Q Unsqueeze member
  268.          R Rename member            U Drive/User change
  269.          V View member              W Wildcard rename
  270.          X Exit NULU                Y Disk directory
  271.          Z NULU command mode        ? Menu
  272.  
  273.  
  274.          Because of the extreme similarity between these commands 
  275.          and  the commands of NULU's command mode,  only a  short 
  276.          description of each command will be given.
  277.  
  278.          A  --  Advance to next member
  279.                (spacebar, cr, or lf will produce the same result)
  280.          B  --  Back up to previous member
  281.          C  --  Close the current library
  282.          D  --  Delete current member file
  283.          E  --  Extract current member file
  284.                (prompt allows redirection)
  285.          L  --  Logon to new library
  286.                (closes the current library)
  287.          P  --  Dumps the current member file to LST:
  288.                (unsqueezes if needed)
  289.          Q  --  Extract  current  member  file,  unsqueezing  if 
  290.                     necessary
  291.                (prompt allows redirection)
  292.          R  --  Rename current member file
  293.  
  294.  
  295.  
  296.          U  --  Change drive/user defaults
  297.                (returns file pointer to the top of the file list)
  298.          V  --  View current member file
  299.                (unsqueezes if needed)
  300.          W  --  Wildcard rename of members
  301.                (prompts for both oldname and newname)
  302.          X  --  Exit NULU
  303.                (closes all files)
  304.          Y  --  Get disk directory for default drive/user
  305.                (returns file pointer to the top of the file list)
  306.          Z  --  Return to NULU command mode
  307.                (current library remains open)
  308.          ?  --  Print the filesweep mode menu
  309.                (returns file pointer to the top of the file list)
  310.  
  311.  
  312.  
  313.          If,  when  the  filesweep mode is entered,  or  after  a 
  314.          library  has  been  closed,   there  is  not  a  library 
  315.          currently open, the filesweep mode will prompt with:
  316.  
  317.          No library open.
  318.  
  319.          and will accept only the following commands:
  320.  
  321.          L,U,X,Y,Z,?
  322.  
  323.          Likewise,  if a library is open but only has a directory 
  324.          with no other active members, the message
  325.  
  326.          No member files.
  327.  
  328.          will be printed and only the commands listed above will 
  329.          be accepted.
  330.  
  331.  
  332.  
  333.          During  the filesweep mode operation,  each file will be 
  334.          listed  in  the  order  in which  it  is  found  in  the 
  335.          directory,  along with the size in K that the file would 
  336.          occupy if it were extracted to the default drive.
  337.  
  338.          If  the filesweep mode is terminated by a return to  the 
  339.          NULU  command  mode,  any commands that followed the  -F 
  340.          command  on  the  previous NULU  command  line  will  be 
  341.          executed.
  342.  
  343. :4
  344.  
  345. -G       GET FILESPEC
  346.          Syntax: -g filespec
  347.  
  348.          NULU  will search for the filespec indicated.   If it is 
  349.          found,  processing  continues.   If  not,  the  user  is 
  350.          prompted  to insert the disk containing  that  filespec.  
  351.          The  drive is then reset and search again.   The program 
  352.          will  prompt  forever  until  it  receives  the   proper 
  353.          filespec or until a cntrl-c is entered,  forcing NULU to 
  354.          continue without the filespec being found.
  355.  
  356.          This  command can be useful when attempting  to  control 
  357.          NULU  through  a submit utility like  DRI's  SUBMIT.COM.  
  358.          For example, one might type:
  359.  
  360.          nulu -o a:asm -g b5:-work.005 -e **=b10: -g a0:-5.005 -x
  361.  
  362.  
  363.  
  364.          After loading,  NULU would open a library called ASM.LBR 
  365.          on  drive A:  in the current user area.   Next it  would 
  366.          search  user area 5 of drive B:  for filespec  -WORK.005 
  367.          until  it  was  found.   Then all  active  member  files 
  368.          would  be  extracted  to  user  area  10  of  drive  B:.  
  369.          Finally, NULU would search user area 0 of drive A: for a 
  370.          filespec  called  -5.005 until found.  Then  NULU  would 
  371.          terminate.  Notice here that the ASM.LBR didn't have  to 
  372.          be  closed  before  the search for  the  final  filespec 
  373.          because   no  change  had  been  made  to  the   library 
  374.          directory.   If  a change had been made,  after the  new 
  375.          filespec had been loaded,  NULU would have demanded  the 
  376.          disk with ASM.LBR back so it could update the directory.  
  377.          Therefore   the  GET  operation  would  be   effectively 
  378.          negated.
  379.  
  380.  
  381.  
  382. -K       KRUNCH THE LIBRARY
  383.          Syntax: -k[ <number of entries to allow]
  384.  
  385.          Even  though all members are kept in alphabetical  order 
  386.          at all times, when a member is deleted the disk space it 
  387.          occupies  is not released to the operating system  until 
  388.          the KRUNCH command is executed.   KRUNCH consists of the 
  389.          following steps:
  390.  
  391.          1.   The  library directory is re-sorted by sector index 
  392.          number,  that is, in the order in which the member files 
  393.          actually exist in the library.
  394.  
  395.          2.  The library is closed.
  396.  
  397.  
  398.  
  399.          3.   A  new library called WORKLBR.$$$ is opened in  the 
  400.          default  drive/user  area and the user  is  prompted  to 
  401.          input the number of files that the new library should be 
  402.          able to contain.   If the user wants just enough entries 
  403.          to contain the currently active members, the number 1 or 
  404.          any  number less than or equal to the current number  of 
  405.          active  entries  may  be  entered.    If  the   optional 
  406.          parameter  listed above is entered,  it will be used  as 
  407.          the  number of entries.   (The KRUNCH processed  may  be 
  408.          aborted  here by typing RETURN or 0.   Please note  that 
  409.          the  library  directory  counts as  an  entry  and  will 
  410.          automatically be accounted for by NULU.)
  411.  
  412.          4.   Once WORKLBR.$$$ is opened, the active member files 
  413.          from the original library will be copied one by one into 
  414.          the  new  library.   The copy routine uses  a  recursive 
  415.          process to copy as many files at one time as possible.
  416.  
  417.  
  418.  
  419.          5.   The  old  library  is deleted  and  WORKLBR.$$$  is 
  420.          renamed with the old library name.
  421.  
  422.          Examples:
  423.          1.  -k
  424.          2.  -k <1
  425.          3.  -u b5: -k <63
  426.          4.  -u b5: -k <1 -u a0: -k <63
  427.  
  428.          The above example would produce the following results:
  429.  
  430.          1.   The  library  would  be  KRUNCHed  to  the  default 
  431.          drive/user  area.   The user would be prompted to  input 
  432.          the number of entries to allow.
  433.  
  434.          2.   The  library  would  be  KRUNCHed  to  the  default 
  435.          drive/user  area with just enough entries to contain all 
  436.          currently active member files.
  437.  
  438.  
  439.          3.   The default drive/user area would be changed to B5: 
  440.          before  the  KRUNCH begins.   Then the library would  be 
  441.          KRUNCHed, allowing 63 entries.
  442.  
  443.          4.   The default drive/user area would be changed to B5: 
  444.          before  the  KRUNCH begins.  The KRUNCH would  commence, 
  445.          allowing  only  enough  entries to  contain  all  active 
  446.          members.   The drive/user area would be changed to  A0:. 
  447.          Then  the library would be KRUNCHed again,  allowing  63 
  448.          entries.
  449.  
  450.  
  451.  
  452. -L       LIST MEMBERS
  453.          Syntax: -l[ filespec]
  454.          Syntax: -l[ (filespec)]
  455.  
  456.          Use  this  command to list the contents of  the  library 
  457.          directory.   Each  member filename will printed followed 
  458.          by  the starting relative sector number in  the  library 
  459.          file, the size of the member in sectors, and the size in 
  460.          K  that the file would occupy if it were to be extracted 
  461.          to the default drive/user area.  Finally, a recap of the 
  462.          size of all member files listed is printed,  along  with 
  463.          the number of sectors occupied by deleted files.
  464.  
  465.  
  466.  
  467.          The  parameters listed above can be used to control  the 
  468.          selection of files for display.  Examples:
  469.  
  470.          1.  -l
  471.          2.  -l **
  472.          3.  -l (**)
  473.          4.  -l *asm
  474.          5.  -l (fred.txt)
  475.  
  476.          The above examples would produce the following results:
  477.  
  478.          1.  All active member files listed.
  479.          2.  All active member files listed.
  480.          3.  All deleted member files listed.
  481.          4.  All  active  member files  matching the filespec  of 
  482.          ????????.ASM listed.
  483.          5.   All  deleted member files called  FRED.TXT  listed.  
  484.          (Note  that is IS possible to have more than one deleted 
  485.          file with the same name.)
  486. :5
  487.  
  488. -M       MENU
  489.          Syntax: -m
  490.  
  491.          Print the command mode menu.
  492.  
  493.  
  494.  
  495. -N       RENAME MEMBERS
  496.          Syntax: -n oldfilespec=newfilespec[...]
  497.          Syntax: -n (oldfilespec)=newfilespec[...]
  498.  
  499.          This  command is used to rename active or deleted member 
  500.          files.    Wildcards   are  fully  supported,   but   the 
  501.          newfilespec   can   be  no  less  ambiguous   than   the 
  502.          oldfilespec.    Deleted   members  may  be  renamed   by 
  503.          enclosing   the   oldfilespec   ONLY   in   parenthesis.  
  504.          Examples:
  505.  
  506.          1.  -n *asm=*bak
  507.          2.  -n (fred.txt)=sam.txt
  508.          3.  -n **=**
  509.  
  510.  
  511.  
  512.          The above examples would produce the following results:
  513.  
  514.          1.    All   active   members   matching   the   filespec 
  515.          ????????.ASM would be renamed with a filetype of .BAK.
  516.  
  517.          2.   The first deleted member file called FRED.TXT would 
  518.          be renamed to SAM.TXT.   All other members matching that 
  519.          filespec would be listed along with a message indicating 
  520.          that they could not be renamed.
  521.  
  522.          3.  All active member files would be listed, each with a 
  523.          message  indicating  that  they  could  not  be  renamed 
  524.          because the name already exists.
  525.  
  526.  
  527.  
  528. -O       OPEN A LIBRARY
  529.          Syntax: -o filename[ <number of entries to allow]
  530.  
  531.          With the exception of the filesweep Logon command,  this 
  532.          command is the only method to open or create a  library.  
  533.          NULU  will search for the filename indicated.   If it is 
  534.          found, it will be opened and a message will be displayed 
  535.          indicating the size of the Data Transfer  Buffer.   This 
  536.          is  the number of sectors in memory that NULU will  have 
  537.          to use in extracting, adding or copying member files.
  538.  
  539.          If the file is not found,  the user will be prompted for 
  540.          the  number of entries to allow in the new library.   If 
  541.          the optional parameter above is passed,  the number will 
  542.          be used to determine the directory size of the  library.  
  543.          All  directories can contain some multiple of 4 entries.  
  544.          All  numbers  input will be rounded up  to  the  nearest 
  545.          multiple  of  4.   Remember  that the  directory  itself 
  546.          counts  as  one entry and that NULU  will  automatically 
  547.          make space for it.
  548.  
  549.  
  550.          The filename passed must be unambiguous.
  551.  
  552.          NOTE ON DIRECTORY SIZE:
  553.          Depending on available memory, libraries with as many as 
  554.          1250 entries (theoretically) can be opened.   But  watch 
  555.          the  Data  Transfer Buffer Size!   If it is less than  8 
  556.          sectors you will not be able to unsqueeze any files.
  557.  
  558.  
  559.  
  560. -P       PRINT MEMBERS
  561.          Syntax: -p filespec[ filespec (filespec)...]
  562.  
  563.          With  this command,  the ascii contents of member  files 
  564.          matching  the filespecs given will be dumped to the list 
  565.          device.   If the file is squeezed,  NULU will  unsqueeze 
  566.          it.   Deleted  members  may be listed by  enclosing  the 
  567.          appropriate filespec in parenthesis.
  568.  
  569.  
  570.  
  571. -Q       UNSQUEEZE MEMBERS
  572.          Syntax: -q filespec[=newfilespec filespec...]
  573.  
  574.          This command is identical in operation and syntax to the 
  575.          EXTRACT command, except that if the matching members are 
  576.          squeezed, they will be unsqueezed.
  577.  
  578. :6
  579.  
  580. -R       REPLACE MEMBERS
  581.          Syntax: -r filespec[ filespec...]
  582.  
  583.          This command is identical in operation and syntax to the 
  584.          ADD command, except that matching files will be added to 
  585.          the  library ONLY if they already exist in the  library.  
  586.          They will be deleted, then the new files will be added.
  587.  
  588.  
  589.  
  590. -T       REPLACE/ADD MEMBERS
  591.          Syntax: -t
  592.  
  593.          This command is a combination of the ADD and the REPLACE 
  594.          commands.   If  the  files do not exist in the  library, 
  595.          they  will be added.   If they do exist,  they  will  be 
  596.          replaced.
  597.  
  598.  
  599.  
  600. -U       DRIVE/USER CHANGE
  601.          Syntax: -u new drive/user
  602.  
  603.          Use  this command to change the default drive/user area.  
  604.          A colon (":") must follow the drive/user spec.  Example:
  605.  
  606.          -u a5:
  607.  
  608.          would switch the default drive/user area to A5:.
  609.  
  610.  
  611.  
  612. -V       VIEW MEMBERS
  613.          Syntax: -v filespec[ filespec (filespec)...]
  614.  
  615.          This  command will list the ascii contents of all member 
  616.          files matching the given filespec to the console device.  
  617.          Deleted  members  may  be  indicated  by  enclosing  the 
  618.          filespec  in  parenthesis.   If  the  member  files  are 
  619.          squeezed,  they will be unsqueezed.   At each page, NULU 
  620.          will accept one  of the following commands:
  621.  
  622.          1.  Cntrl-x to skip to the next member file
  623.          2.  Cntrl-c to abort further listing
  624.          3.  L to list one line
  625.          4.  CR, space, or LF to list another full page
  626.  
  627.  
  628.  
  629.          At  the  end  of each member  file  the  message
  630.  
  631.           "Press RETURN"
  632.  
  633.          will  be  displayed and NULU will wait for  a  keystroke 
  634.          before moving to the next matching member file.
  635.  
  636.  
  637.  
  638. -X       EXIT NULU
  639.          Syntax: -x[ "$$$.SUB command line"]
  640.  
  641.          This  command will set a flag indicating that  when  the 
  642.          current  NULU  command line is  exhausted,  NULU  should 
  643.          terminate.  But the command is actually a toggle.  If it 
  644.          is  entered  twice  on a line the effect of  the  second 
  645.          issuance will be to negate the first.   If the  optional 
  646.          parameter is passed, it will be written to a file called 
  647.          $$$.SUB  on  drive A:  in the user area that was  active 
  648.          when NULU was first loaded.  The line will be encoded as 
  649.          a   SUBMIT  command  line  recognizable  by   the   CCP.  
  650.          Therefore, when NULU exits, the CCP will reach into that 
  651.          file and execute the line.   (CP/M Plus users take note:  
  652.          the  $$$.SUB file will be written to the drive that  was 
  653.          the   default   drive  when  NULU  was  first   loaded.)  
  654.          Examples:
  655.  
  656.  
  657.  
  658.          1.  -x
  659.          2.  -x -x
  660.          3.  -x "nsweep b:"
  661.  
  662.          The above examples would produce the following results:
  663.  
  664.          1.  The  termination  flag  will be set  and  NULU  will 
  665.          terminate when the current command line is exhausted.
  666.          2.   The  termination flag is set and the  reset.   NULU 
  667.          does not terminate.
  668.          3.   The  termination  flag  is set and  a  file  called 
  669.          $$$.SUB  is  created on the appropriate drive  with  the 
  670.          command line "NSWEEP B:" encoded in it.
  671.  
  672.  
  673.  
  674. -Y       DISK DIRECTORY
  675.          Syntax: -y[ filespec]
  676.  
  677.          This  command  will print an unsorted directory  of  the 
  678.          disk  indicated by the parameter passed,  or a  complete 
  679.          directory if none is passed.  The scope of the directory 
  680.          may  be  limited by indicated the appropriate  ambiguous 
  681.          filespec.
  682.  
  683. :R
  684.  
  685. -<       REDIRECT INPUT
  686.          Syntax: -< filename
  687.  
  688.          This  command  will  cause NULU  to  open  the  filename 
  689.          indicated  and begin accepting commands from it  instead 
  690.          of  receiving them from the console.   This type of file 
  691.          is,  in  effect,  a NULU command file.   Syntax  of  the 
  692.          commands  in this file is identical in every way to  the 
  693.          syntax used in normal NULU operation.  Each command line 
  694.          in  the file must be terminated by a CR,LF.   If another 
  695.          "-<"  command is encountered in the  file,  the  current 
  696.          command  file  will  be closed and the new  one  opened.  
  697.          After  the  commands  have  been  completely  processed, 
  698.          control  will be returned to the console.   All  command 
  699.          lines will be converted to upper case and echoed to  the 
  700.          console before processing.  Any commands appearing after 
  701.          a "-<" command will be ignored.
  702.  
  703.          The filename passed must be unambiguous.
  704.  
  705.  
  706. ->       REDIRECT OUTPUT
  707.          Syntax: -> filename
  708.          Syntax: ->
  709.  
  710.          With the first form of this command, NULU output will be 
  711.          sent  to the filename indicated.   If the  file  already 
  712.          exists, it will be deleted.  All special characters that 
  713.          the  user  may have patched into NULU (see  below,  NULU 
  714.          MODIFICATION) will be sent to the file as well, with the 
  715.          exception  of  the EOF character,  26 (1ah).   The  only 
  716.          output  not echoed to the file will be output caused  by 
  717.          viewing or printing a member file.
  718.  
  719.          The filename passed must be unambiguous.
  720.  
  721.          Under  the  second  form of this  command,  the  current 
  722.          output file, if any will be closed.  When NULU is caused 
  723.          to  terminate,  the current output file is closed  along 
  724.          with the current library, if any.
  725. :E
  726.                          ERROR MESSAGES
  727.  
  728. All NULU error messages are of the form:
  729.  
  730. ERROR XX: Explanation
  731.  
  732. where  "XX"  is some number from 0 to 255 and "Explanation" is  a 
  733. clue as to the nature of the error.  Each error message is listed 
  734. below,  along  with an explanation.   Suggestions about  ways  to 
  735. handle the error are given when appropriate.
  736.  
  737. ERROR 63: ambiguity error
  738. Problem:       This means that you entered an ambiguous  filespec 
  739.                where an unambiguous filename was required.
  740.  
  741.  
  742.  
  743. ERROR 68: disk full
  744. Problem:       The  library disk became full during file addition 
  745.                or  KRUNCHing  or  the  destination  disk  of   an 
  746.                extraction command became full.
  747. Solution:      If  the  error  occurred  during  KRUNCHing,  NULU 
  748.                should have recovered by itself, reopening the old 
  749.                library.   If it did not recover, then you removed 
  750.                the  original disk before the KRUNCH was  complete 
  751.                or a serious read error occured.
  752.  
  753.                If  the  error occurs during file addition to  the 
  754.                library,  operation should not be impaired, but no 
  755.                files  that required additional disk space can  be 
  756.                added  to the library.   Note that deleted entries 
  757.                can still be overwritten by incoming files as long 
  758.                as  the file sizes match.   The original file that 
  759.                caused  the error will be recorded in the  library 
  760.                directory as a deleted entry.
  761.  
  762.  
  763.                If  the  error  occurs during file  extraction  or 
  764.                unsqueezing   the  destination  file  is   deleted 
  765.                because it is an incomplete file.   Extraction can 
  766.                continue as before.
  767.  
  768. ERROR 73: invalid drive
  769. Problem:       An  invalid drive for your system was chosen  (see 
  770.                below,  NULU MODIFICATION) or a letter higher than 
  771.                "P" was indicated.
  772. Solution:      Choose another drive or re-patch NULU.
  773.  
  774. ERROR 77: not enough memory
  775. Problem:       An  attempt  was  made to open a  library  with  a 
  776.                directory  too  large  to be  accounted  for  with 
  777.                available memory.
  778. Solution:      Open  the library on a computer with a larger  TPA 
  779.                and  reorganize  it  so it can be handled  by  the 
  780.                smaller system.
  781.  
  782.  
  783.  
  784. ERROR 78: user cancel
  785. Problem:       No problem.   NULU is simply letting the user know 
  786.                why  an OPEN LIBRARY or KRUNCH operation has  been 
  787.                cancelled.
  788.  
  789. ERROR 83: no directory space
  790. Problem:       An  attempt  was made to create a file on  a  disk 
  791.                with no free directory entries.
  792.  
  793. ERROR 85: file not found
  794. Problem:       The  filespec indicated for some  operation  could 
  795.                not be located.
  796.  
  797. ERROR 86: CP/M 2.x or higher required
  798. Problem:       An  attempt was made to run NULU on a system  with 
  799.                an CP/M version number of less than 2.0.
  800.  
  801.  
  802.  
  803. ERROR 88: seek to unwritten sector
  804. Problem:       A  sector  required to gain access to  a  file  is 
  805.                indicated by CP/M to be unwritten.
  806. Solution:      The  library  directory  or  perhaps  the  library 
  807.                itself has become trashed at some point.  Deleting 
  808.                the  entry  and KRUNCHing will probably render  it 
  809.                harmless,  but  the  safest course to take  is  to 
  810.                obtain a fresh copy of the library.
  811.  
  812. ERROR 100: bad library directory
  813. Problem:       The  file  specified  could not  be  opened  as  a 
  814.                library  file.
  815. Solution:      The  directory could be bad,  but most likely  the 
  816.                file  simply isn't a library.   Check it out  with 
  817.                some disk editor like SPZ or EDFILE.
  818.  
  819. ERROR 115: bad syntax
  820. Problem:       Improper syntax was user to attempt some operation.
  821.  
  822.  
  823.  
  824. ERROR 116: squeeze decode table
  825. Problem:       A  file has a squeeze decoding table,  but at some 
  826.                point the table is trashed or perhaps is  missing.  
  827. Solution:      None really; get a new copy of the file.
  828.  
  829. ERROR XX: undefined
  830. Problem:       Unknown.
  831. Solution:      Write   down  all  information  presented  on  the 
  832.                terminal.   The number following the word ERROR is 
  833.                especially important.  Get the information to  me.  
  834.                Mail it or call and I will try to help.
  835.  
  836.  
  837.  
  838.