PROGRAM TO SORT UIC DIRECTORIES 1.0 DEVICE REQUIREMENTS The UIC's on any Files-11 random access device recognized by the system may be sorted and listed. The devices must be mounted [FOR] or [DCF] in order for the task to read them. 2.0 DEVICE SPACE REQUIREMENTS A temporary sort file, DSKLST.TMP;1, is built by the task. It creates one 16-word record for each UIC entry that is to be listed. The file is deleted unless the task is aborted. It is always built on SY0:. If you wish to put in on another drive, you can either install the task and REA Lun 2, or change the ASG statement in the task builder command file. Enough space must be available on the device to hold the size file required. 3.0 OPERATING UIC Any UIC may be used. It does not need to be privileged. The instructional file, DSKLST.DOC, should be stored in the same UIC as the task. The task should always be run from this UIC if the instructional file is to be referenced. 4.0 LISTED DATA The printed output from the task is self-explanatory -- except that the disk-blocks shown for each file are the blocks allocated to the file -- not the end-of-file block count. This differs from the normal "PIP" listing. 5.0 SORT MODE 6 In mode 6, the task checks all of the file headers on the device, looking for files that are locked or that have "0" blocks in use -- regardless of how many blocks are allocated. No cross checking against UIC directories is performed in this mode. It is possible that the listing will include files PAGE 2 that are not located in any UIC directory. If such files are encountered, they may be recovered, using "VFY", or deleted with "PIP", using the file number. The output listing for these files contains the file number and file sequence number in place of the creation date, as an aid in using the "PIP" delete function. Otherwise it would be necessary to run "VFY" to obtain this information. 6.0 UIC ENTRIES INCLUDED The task will list any entries in any UIC except the non-numeric entries in [0,0]000000.DIR. These are references to the various .SYS files -- INDEXF, BADBLK, etc. -- and will not be listed. 7.0 TASK LOGIC The task reads the disk using the "logical read" instruction, so that all UIC's and files can be read, regardless of their protection. This does, however, require the [FOR] or [DCF] mounting. Five subroutines are included in the task library: 1. RLB -- to read logical blocks with no buffering 2. MOVEB -- to move a logical data string 3. NCOMPB -- to compare two logical data strings 4. DSORT -- an open-ended bubble sort routine. 5. DELETE -- to delete the temporary file at task-end. Fortran tasks used by the CP&P Division of Eastman Kodak utilize a resident library of Fortran-callable re-entrant subroutines. The task-image size for a threaded-code compilation using this library is approximately 42 disk-blocks. In-line code, other resident libraries, etc. may alter the size of the task considerably. The task-builder currently references only SYSLIB in the task-builder command file. If you have another Library you wish to reference, it should be edited in. A 4000-word work area for the sort is specified in the source file -- enough t o sort 250 file records in memory. Larger sorts overflow into a temporary disk file. Large sorts will run faster if the size of the work area is increased. The work area is defined in PAGE 3 the first few lines of coding for easy alteration if desired. The task ignores the existence of any extension segments in file headers. This condition should not exist until there are a very minimum of 3265 entries in one uic, with a more likely value being >10000. We believe that there will be very few, if any, UIC directories with file extension segments. The source program was written in "FLECS", with the resultant "difficult-to-follow" Fortran source code. Anyone desiring the "FLECS" source may request it from the author, sending a mag tape reel (maximum size 600 feet) for recording at 800 BPI.