v79A 03/17/84 The SD Super Directory Program This documentation file concerns SD-79A.ASM. This is a signifi- cant upgrade of the standard "super-directory" program that most RCP/M systems are now using as their "DIR" executor. The most significant improvement is the support of the DU: form for drive-spec, similar to that used by ZCPR2 and its various utilities. This is concurrent with the $U option. The filename of the file for the $F option has been altered to SD.DIR, as it was originally. Other op- tions such as multi-drive search remain as before. Now, in place of the $U option, you may specify the Drive/User with the filename, such as: SD A1:*.*, SD 1:*.*, SD B:FN.FT, SD B4:FN.FT $AD, etc. You may still use the $U option if desired, although it seems the DU: form is a much easier and more logical method. Files may be shown in vertical or horizontal listings, although this must be set when the program is assembled for a particular system. SD-79A has support for .LBR files, (an 'L' option to list their member files); and support for the NZCPR/ZCPR2 "WHEEL" byte option. (SD-79A.COM set up for ZCPR2 use with WHEEL at 3EH.) Size of library member files are shown in 'k'. The basic operation of SD is as in previous releases. You merely type "SD", followed by an optional ambiguous or nonambiguous filename (as you would with the CCP directory command). Omitting the filename (i.e., "SD "), will be interpreted as "SD *.*". Similarly, "SD A:" would imply "SD A:*.*" and "SD B:" would imply "SD B:*.*". In addition to the filename option, up to 11 command line options may be specified. Option fields are preceded by a single dollar sign as with most Digital Research programs such as MAC, and may be essen- tially free-form in format. Example: SD B:$ADnU0fpS. Spaces within the option field are insignificant i.e., "$ SADN U0FP" is equivalent to "$ S A D N U0 F P"). The only exception concerns the "USER" option which will be explained later. Users should also be aware of two restrictions on the command line format. SD scans the entire command line for a dollar sign preceded by at least 1 blank to delimit the beginning of the option field. Forthis reason, invoking SD with a command line such as: "SD $ $AR" is illegal, since SD will consider the first dollar sign to be the option field de- limiter. If you need to specify a filename whose first character is a dollar sign precede it with a drive code as in "SD A:$ $AR". In this instance, SD will consider the first dollar sign insignificant as it is not preceded by a blank. Starting with SD-75 there is an assembly time option which, if set, allows the use of options without requiring the filename to be preceded with a drive code so long as you wish to look on the default drive. You give up the ability to specifically search for a filename whose name begins with a '$'. However, such files will be listed, along with others, if the command line "SD $CU3" (or any other options) were speci- fied. The "COM" file is configured with this option set. Setting the option to 'NO' and reassembling will cause operation to revert to that of previous versions (see paragraph above). The second restriction is that command line options may be specified once and only once per invocation. That is, "SD A:$SDS" would be il- legal since the 'S' option is specified twice. This shortcoming is due to the fact that options can be made into defaults at assembly time. Note that if an option is made default, with zero as option flag, it cannot be specified without generation an error message. The eleven re- cognized options: "S" - system option: System files will be included in the output rather than being suppressed. "F" - file option: The directory output will be echoed to a disk file named "SD.DIR" on the DEFAULT drive. If this name already exists then the directory output will be APPENDED to the end of the file. "SD.DIR" will otherwise start as a new file. The append fea- ture allows you to build up one massive file on the de- fault drive containing the directories of all of your disks, without having to concantenate a swarm of indi- vidual directory files. If you plan to use this fea- ture often,it will be simpler for you to have a dedi- cated version on your MAST.CAT disk with AUTOR set 'YES'. The advantage of this is that you can work thru a pile of disks without having to CTL-C or specify the 'R' option every time you SD a new disk. Failing to do this will result in the allocation vector being inval- id, and FREE size will be wrong. "U" - user option: Allows the specification of the user num- ber for the directory of the form "Uxx" where the user # is greater than 0, but not greater than a specified value not to exceed 15. The user option specification will be illegal if the user # is out of range, omitted, or if 'U' is specified on a pre-CP/M 2 system. Since the user option requires a parameter (i.e., the user number), the user number must immediately follow the 'U' option on the command field. That is, "U1" is legal, but "U 1" is not. In this respect, the 'U' option differs from the other options in that embedded spaces ARE significant. "A" - all users: Causes SD to display directories of all user areas starting at the user area specified in the 'U' option or, if the 'U' option is omitted, user area 0 and continuing up through the MAXUSR value from the LODRV-HIDRV table. (If ZPR2/WHLUSR=TRUE and the WHEEL byte set, 0-MXZUSR.) "L" - LBR list option: Allows for listing of ".LBR" file members. ".LBR" file members are shown followed by their length in 'k'. The total length of the entire library is also shown. "V" - If included, SD version number is displayed. "C" - If included, clear screen performed before directory information is displayed. "N" - no page option: Unconditionally disables the page pause option. Useful when running SD in the 'F' and/or 'A' modes when you don't want the page prompt slowing you down. SD-79A will not put the page-pause prompt into the output file or to printer if either enabled. "P" - printer option: Forces all console output to be echoed to the CP/M list device, with the most significant bit set to 0. "D" - all disk option: Allows SD to search all disk drives on-line starting with the disk drive specified or im- plied with the command line filename. For example, "SD B:$D" will result in SD searching all drives begin- ning with drive B. "SD $D" will result in SD searching all drives automatically beginning with the A drive, regardless what drive you started on. "R" - Reset disk system: A disk system reset is done before directory information is accumulated. If an unrecognized option (or illegal user option specification) is detected, then the command line will be played back to the console up to the point where the error was detected. However, if the REPERR option is disabled, then SD will keep its mouth shut and ignore everything on the command line past the illegal field. In this situation, an illegal- ly specified user number would default back to the current user number. The option of DISABLING error reporting was included primarily for sys- tems with hidden doors and secret passageways. Shooting off rockets and clanging bells everytime a twit starts "experimenting" just calls atten- tion to the fact that there really IS something behind that hollow- sounding wall after all. As an added convenience, it is possible to "hard-wire" some or all of the command line options. For example, if you want SD to ALWAYS list system files, you can do that. For details, see the comments preceding the option field lookup table in the assembler source file. Finally, if the all-disk and/or all-user options are enabled, it may be desirable to restrict searches. To facilitate this, a table is in- cluded in SD (beginning at label "LODRV" and continuing through "HIDRV"). The table consists of a single byte for each drive to be searched begin- ning with 'A'. Each byte may be in the range of 0-15 mod 15 and defines the highest user number that SD will search for that particular drive. The highest drive number to search is defined by the length of the table. If four DBs are present between LODRV and HIDRV, then drives A-D can be searched. The source file includes the LODRV-HIDRV table in its maximum configuration for 16 drives. However, delete DBs referencing drives that aren't available on your system. Although SD will intercept attempts to search non-existant drives, there really isn't any point in allowing SD to always search drive C when you only have 2 logical drives; and de- pending on how your BIOS is constructed and how long it monkeys around before advising the BDOS of the select error, it could save some time. You don't really have to be running NZCPR or ZCPR2 to use the wheel byte feature, just get the WHEEL program and add code to BYE to make sure WHEEL byte is cleared when a remote user logs on, (before entering CP/M). - Written by Kim Levitt - Updated by Irv Hoff - Further updates by Dennis Vallianos