-A Add Members -B Brief Toggle -C Close Library -D Delete Members -E Extract Members -F Filesweep Mode -G Get Filespec -H Help -K Krunch Library -L List Members -N Rename Members -O Open 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 -W Wildcard Open -X Exit Nulu -Y Disk Directory -Z Zap Disk Files -< Redirect Imput -> Redirect Output :-A ADD MEMBERS Syntax: -a filespec[ filespec...] Use this command to add files from disk to the current library. NULU will make a series of passes through the directory, adding files as it goes, until the list of matching files is exhausted. If a matching filename already exists as an active member in the library, its name will be displayed and the file will not be added. In all file addition and replacement operations, if a deleted entry of identical size can be located, that disk space and directory entry will be used rather than allocating new space for the file. This means that it will be necessary to reclaim wasted disk space less often. An LU style CRC will be generated for each file added. :-B BRIEF TOGGLE Syntax: -b This toggles the prompting mode. The release version of NULU is setup to print the full name of the current mode for a prompt, as in "-Add members A0:>". If BRIEF is turned on the user will simply see "-A A0:>". NULU may be permanently patched to default to BRIEF ON or OFF. See NULU MODIFICATION file. :-C CLOSE THE LIBRARY Syntax: -c This command closes the current library, writing its directory to disk if any changes have been made to the directory. The library directory is NEVER written except when the library is closed, so be sure to do it. If you forget to do so and remove the disk, NULU will prompt you for the disk again and will attempt to recover. Some other operations that cause the current library to be closed are: -k, -o, -w, -x :-D DELETE MEMBERS/FILES Syntax: -d filespec[ filespec (filespec)...] Syntax: -d du:filespec[ du:filespec...] If the drive/user specification is included, the DELETE function will apply to files on disk, otherwise it applies to library member files. Member files matching the given filespec will be given deleted status in the library directory, except when the filespec is enclosed in parenthesis. In that case matching deleted members will be given active status. That is, they will be undeleted. If the filename of a matching deleted member file already exists as an active member, the filename will be displayed and the file will not be undeleted. If the member file being deleted has a size of zero sectors, its entry will be entirely REMOVED from the library directory, thereby creating a new, free entry. :-E EXTRACT MEMBERS Syntax: -e filespec[=newfilespec filespec du:filespec...] Use this command to extract active member files. If extraction to the current drive/user area is desired, no further syntax is necessary. To indicate another drive, however, a destination drive/user area may be included in the source filespec. For example "-e a5:**" would extract all active members to drive A, user area 5. Files may be renamed as well as redirected by indicating a filespec along with, or in place of, a drive user specification following an equals sign. Examples: 1. "-e *asm=*bak" Extract all files with a type of .ASM to the default drive/user renaming them with the filetype of .BAK. 2. "-e *asm=5:*.txt" Extract all files of type .ASM to user area 5 of the default drive, renaming each with the .TXT filetype. ~ 3. "-e fred.txt=sam.txt jane.inf=c8:girls.dbf" Extract the member file FRED.TXT to the default drive/user under the name of SAM.TXT, and extract the member file JANE.INF to user area 8 of drive C: with the filename GIRLS.DBF. The two redirection rules to remember are: 1. If a destination filespec is entered it cannot be any less ambiguous than the source filespec, i.e., "*asm=*bak" is valid while "**=*bak" is not valid. 2. Any filespec following an equals sign takes precedence over any drive/user specification in the source filespec, i.e., "-e 6:*asm=*bak" would extract all member files to the current drive/user, renaming them, and would ignore the "6:" specification. ~ During extraction, a CRC is generated for each file. After the destination file has been closed, the CRC so generated is compared to the CRC for that library member that was stored in the library directory, if that value was non-zero. If the results are not identical, an error message will be displayed before the next member file or filespec will be processed. The erroneous destination file will not be deleted from disk by NULU as a result of this error. :-F FILESWEEP MODE Syntax: -f This command places NULU in its second operational mode, the filesweep mode. This allows the user to move through the directory of active member files as if they were individual files being examined by a program like NSWEEP. The filesweep mode's command list is as 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! Because of the extreme similarity between these commands and the commands of NULU's command mode, only a short description of each command will be given. A -- Advance to next member (spacebar, cr, or lf produces the same result) B -- Back up to previous member C -- Close the current library D -- Delete current member file E -- Extract current member file (prompt allows redirection) F -- Find first member matching input filespec L -- Change drive/user defaults (returns file pointer to the top of the file list and untags all member files) M -- Mass operations on all tagged files (allows Deletion, Extraction, Printing, Unsqueezing, or Viewing) O -- Open new library (closes the current library) P -- Dumps the current member file to LST: (unsqueezes if needed) Q -- Extract current member file, unsqueezing if necessary (prompt allows redirection) R -- Rename current member file T -- Tag current member U -- Untag current member V -- View current member file (unsqueezes if needed) W -- Wildcard rename (prompts for oldname & newname) X -- Exit NULU (closes all files) Y -- Get disk directory for default drive/user (returns file pointer to the top of the file list and untags all member files) Z -- Return to NULU command mode (current library remains open) ? -- Print the filesweep mode menu ~ If, when the filesweep mode is entered, or after a library has been closed, there is not a library currently open, the filesweep mode will prompt with "No library open" and will accept only the following commands: L,O,X,Y,Z,? Likewise, if a library is open but only has a directory with no other active members, the message "No member files" will be printed and only the commands listed above will be accepted. During filesweep operation, each file will be listed in the order in which it is found in the directory, along with the size in K that the file would occupy if it were extracted to the default drive. If the filesweep mode is terminated by a return to the NULU command mode, any commands that followed the "-F" command on the previous NULU command line will be executed. :-G GET FILESPEC Syntax: -g filespec NULU will search for the filespec indicated. If it is found, processing continues. If not, the user is prompted to insert the disk containing that filespec. The drive is then reset and search again. The program will prompt forever until it receives the proper filespec or until a ^C is entered, forcing NULU to continue without the filespec being found. This command can be useful when attempting to control NULU through a submit utility like DRI's SUBMIT.COM. For example, one might type "nulu -o a:asm -g b5:-work.005 -e b10: -g a0:-5.005 -x". After loading, NULU would open a library called ASM.LBR on drive A: in the current user area. Next, it would search user area 5 of drive B: for filespec -WORK.005 until it was found. Then all active member files would be extracted to user area 10 of drive B:. Finally, NULU would search user area 0 of drive A: for a filespec called -5.005 until found. Then, NULU would terminate. ~ Notice here that the ASM.LBR didn't have to be closed before the search for the final filespec because no change had been made to the library directory. If a change had been made, after the new filespec had been loaded, NULU would have demanded the disk with ASM.LBR back so it could update the directory. Therefore, the GET operation would be effectively negated. :-H HELP Syntax: -h Print the command mode menu. :-K KRUNCH LIBRARY Syntax: -k[ ~ -: WAIT FOR RETURN Syntax: -: -failure mode This command will force NULU to wait for the RETURN (0dh) character to be input to the console device. If a RETURN is received, the balance of the command line will be ignored. If a ^C is entered, the remaining commands on the line will be executed. ~ -; COMMENT Syntax: -; comment about this kludge of a JCL This command will cause NULU to ignore all text appearing after the command on the same physical command line. :-> REDIRECT OUTPUT Syntax: -> filename Syntax: -> With the first form of this command, NULU output will be sent to the filename indicated. The default filetype of ".NOF" will be used if no filetype is specified. If the file already exists, it will be deleted. All special characters that the user may have patched into NULU (see below, NULU MODIFICATION) will be sent to the file as well, with the exception of the EOF character, 26 (1ah). The only output not echoed to the file will be output caused by viewing or printing a member file. Even if the console has been turned off by an NCF file, all console output will continue to be sent to this file. The filename passed must be unambiguous. Under the second form of this command, the current output file, if any will be closed. When NULU is caused to terminate, the current output file is closed along with the current library, if any.