;;12-22-87 DR.DOC v2.4 12/28/87 Eric Gans French Dep't UCLA Los Angeles, CA 90024 The distinctive feature of this alphabetical directory program is that it gives the number of 128-byte records/sectors in each file as well as the number of K in its allocation blocks. This information is useful when composing file libraries, sending files via modem, or checking for different versions of a file. Version 2.4 Added DOS DIR syntax (fn. = fn.* etc.) Interprets switch alone entries (e.g., dr /d) correctly. Added /E option for sort by file extension. (Also see FILX documentation below.) Version 2.3 Fixed a bug in line count. Added separate 5-byte inverse video on/off codes for easier patching. DR 2+ allows: - "Paging" (backwards & forwards) through the directory - Writing its output to a disk file and/or the printer - Multi-drive and multi-user directory search Format: dr [[d][u]:][filemask] [/switches] The colon is only necessary if a user and/or drive is entered. Current will be assumed, and if no filemask is given, *.* will be assumed. A space is necessary before the switches. User-Friendly Syntax (v2.4) The following convenient alternatives (mostly familiar to users of the MS-DOS 'DIR' command) are now supported: filename. = filename.??? .typ or *typ = ????????.typ * = ????????. *. or ** = ????????.??? filenametyp = filename.typ (if 'filename' has 8 letters!) The switches are as follows: W = Write output to file. You will be prompted for a drive/filename; default is -DIRFL.DRF on the current drive. D = Multi-drive directory. You may enter a (1 hex digit) number after the "D" to indicate the maximum drive to be searched; otherwise the number at 102H (default = 3) will be used. U = Multi-user directory. As opposed to the output of the "*" user command, which puts all files into a single alphabetized list, the "U" switch creates separate lists for each user area. The maximum user to be searched (default=15) can be set from within the program by adding a hex digit (0-F). The "U" switch is automatically disabled if you indicate a user area (including # or *) when calling the program. P = Send output to printer. If you use this switch the directory will not appear on the screen. Multi-page directories will each start on a new page; if you don't like this feature, see the customization section below. E = Sort files by extension (the last 3 characters in the filename). This allows you to find related groups of files. Examples: dr 3: /d will list all drives user 3; dr /d3uf lists all user areas in 15 drives (45 lists); dr *: /d3 will output three lists including all files on each drive; dr *.com /dupw will print and make a file of all *.com files on 3 drives * 15 users (this will use 45 sheets of paper if you don't kill the form-feed feature!) A maximum of 64 "pages" (screens and/or separate lists) is permitted; this should be more than enough for 3 drives/15 users, perhaps even for 4 drives. NB: If you use both "U" and "D" or "E" switches, DON'T put the U switch first; DR will interpret /ud as user 0-13, since D is the hex digit 13. Customizing This has been simplified in versions 2.1 & 2.3 The following addresses may be patched with SRW, PATCH or even good old DDT: Hex Address(es) Original setting(s) MAXDSK 102 3 MAXUS 103 15 (0Fh) NO_FF 104 0 (inactive) NO_VID 105 0 (inactive) INV VID ON 106-10B ESC B0 (1B,42,30) + 0,0,0 INV VID OFF 10C-111 ESC C0 (1B,43,30) + 0,0,0 1. MAXDSK gives the (default) number of drives for the "D" switch. Whatever its setting, it can be overridden if you enter a number after the "D". 2. MAXUS is the default maximum user for the "U" switch; it can likewise be overridden. 3. If NO_FF is set to a non-zero value, a form feed (0CH) will not be sent to the printer after each page when the "P" switch is used. 4. If NO_VID is non-zero, the video routine that displays high bits will be turned off. If your system supports such a routine but uses different codes, you should keep NO_VID as is and patch 106-10B and 10C-111. This now (v2.3) allows up to 5 bytes for both on and off routines. The sixth byte in each must remain 0. NB: If you use the "P" switch the video routine will be killed regardless of the NO_VID setting; thus if you make a file at the same time, the video bytes will not be included. Other features - backward & forward paging through long directories without rerunning program (this suggestion is due to Merlin Null). The pages will "wrap around"; you may exit at any time. - files alphabetized in vertical columns (63 files/screen). - ZCPR drive/user syntax: either drive, user, or both can precede the colon (a3: 5: d:). - [d]*: will make a single list of all files on drive d: specifying the user for each. dr *: /d gives all files on all drives (one list per drive); dr /du makes a separate list for each drive/user. - [d]#: will list all erased files in the directory on drive d: (useful before running unerase programs which usually allow only unambiguous file names). - gives number of files, KBytes in files & on drive, and remaining free space. - inverse video indicates high bits set. - DR 2.4 still occupies only 4 K (26 sectors as opposed to 32 for SD.COM). Even in this more memory-intensive version it is still the fastest around. On a 64K system it allows up to about 1300 files in a single search. (If it overwrites the CCP, DR will do a Warm Boot.) FILX.COM v1.0 FILX is a special version of DR that lists files by extension without other information like length or user area so as to get more files per screen. All the DR switches and syntax may be used, except that no filemask can be given. After using an MS- DOS PD program called FILEX, I found this kind of listing very useful for cleaning up directories.