VAX-11 Directory Editor FLIST ---------------- October 27, 1995 ---------------- This manual documents FLIST, a file manager utility Copyright 1995 by Thomas E. Dickey Page iii CONTENTS CHAPTER 1 INTRODUCTION TO FLIST 1.1 CONFIGURATION REQUIREMENTS . . . . . . . . . . . . 1-1 1.2 DISPLAY WINDOW . . . . . . . . . . . . . . . . . . 1-1 1.2.1 Status Line . . . . . . . . . . . . . . . . . . 1-2 1.2.2 Display-List . . . . . . . . . . . . . . . . . . 1-3 1.3 COMMAND ENTRY . . . . . . . . . . . . . . . . . . 1-3 1.3.1 Configuration Requirements . . . . . . . . . . . 1-3 1.3.2 Scrolling . . . . . . . . . . . . . . . . . . . 1-4 1.3.3 Visible Command Entry . . . . . . . . . . . . . 1-5 1.3.4 Command Editing . . . . . . . . . . . . . . . . 1-5 1.3.5 Command History . . . . . . . . . . . . . . . . 1-6 1.4 COMMAND SUBSTITUTION . . . . . . . . . . . . . . . 1-7 1.4.1 Token Substitution . . . . . . . . . . . . . . . 1-7 1.4.2 Symbol Translation . . . . . . . . . . . . . . . 1-9 1.4.3 Default-Propagation . . . . . . . . . . . . . . 1-9 CHAPTER 2 FLIST COMMANDS 2.1 APPEND (AP), COPY (CO) . . . . . . . . . . . . . . 2-1 2.2 CREATE (CR) . . . . . . . . . . . . . . . . . . . 2-2 2.3 DELETE (DEL) . . . . . . . . . . . . . . . . . . . 2-2 2.4 EDIT (E), VIEW (V) . . . . . . . . . . . . . . . . 2-3 2.5 FIND (F) . . . . . . . . . . . . . . . . . . . . . 2-5 2.6 HELP (H) . . . . . . . . . . . . . . . . . . . . . 2-5 2.7 INSPECT (I) . . . . . . . . . . . . . . . . . . . 2-6 2.8 BROWSE (M) . . . . . . . . . . . . . . . . . . . . 2-6 2.9 NEXT (N) . . . . . . . . . . . . . . . . . . . . . 2-7 2.10 NFIND (NF) . . . . . . . . . . . . . . . . . . . . 2-7 2.11 PRINT (PR) . . . . . . . . . . . . . . . . . . . . 2-8 2.12 PROTECT (PRO) . . . . . . . . . . . . . . . . . . 2-8 2.13 PURGE (PUR) . . . . . . . . . . . . . . . . . . 2-10 2.14 QUIT (Q) . . . . . . . . . . . . . . . . . . . . 2-11 2.15 READ (R) . . . . . . . . . . . . . . . . . . . . 2-11 2.16 RENAME (REN) . . . . . . . . . . . . . . . . . . 2-12 2.17 SPAWN (SP) . . . . . . . . . . . . . . . . . . . 2-12 2.18 SUBMIT (SU) . . . . . . . . . . . . . . . . . . 2-13 2.19 VERIFY (VE) . . . . . . . . . . . . . . . . . . 2-13 CHAPTER 3 DISPLAY MANIPULATION 3.1 DIRECTORY SORTING . . . . . . . . . . . . . . . . 3-1 3.1.1 Sorting And Column Keywords . . . . . . . . . . 3-1 3.1.2 Sorting Order . . . . . . . . . . . . . . . . . 3-2 3.1.3 Fixed-Point Sorting . . . . . . . . . . . . . . 3-3 3.2 DISPLAY FORMAT COMMANDS . . . . . . . . . . . . . 3-4 3.2.1 /COLUMNS (/C) . . . . . . . . . . . . . . . . . 3-4 3.2.2 DATE Toggle Commands . . . . . . . . . . . . . . 3-5 3.2.3 Display Column Rotation . . . . . . . . . . . . 3-5 Page iv 3.3 STATUS COMMANDS . . . . . . . . . . . . . . . . . 3-6 3.4 OTHER DISPLAY COMMANDS . . . . . . . . . . . . . . 3-7 3.4.1 Refresh-Hold . . . . . . . . . . . . . . . . . . 3-7 3.4.2 Screen Refresh . . . . . . . . . . . . . . . . . 3-7 3.4.3 Screen Dump . . . . . . . . . . . . . . . . . . 3-7 3.4.4 Reset Timer . . . . . . . . . . . . . . . . . . 3-7 CHAPTER 4 INVOKING FLIST 4.1 ALTERING THE INITIAL DISPLAY FORMAT . . . . . . . 4-1 4.2 RESTRICTING THE DISPLAY LIST . . . . . . . . . . . 4-1 4.3 REDUCED-CAPABILITY OPERATION . . . . . . . . . . . 4-2 CHAPTER 5 VT100/VT52 KEYPAD APPENDIX A IMPLEMENTATION A.1 GOALS . . . . . . . . . . . . . . . . . . . . . . A-1 A.2 TRADEOFFS . . . . . . . . . . . . . . . . . . . . A-2 A.2.1 Terminal Control . . . . . . . . . . . . . . . . A-2 A.2.2 Running DCL Commands . . . . . . . . . . . . . . A-2 A.2.3 Interface To CLI And Error Reporting . . . . . . A-3 APPENDIX B COMMAND SUMMARY Page v PREFACE MANUAL OBJECTIVES This manual describes the directory-editing program FLIST and provides usage and reference information on the program. INTENDED AUDIENCE This manual is intended for users of the VAX/VMS operating system who must manage disk files. Users are expected to be familiar with the VMS directory structure, the use of wildcards, and how to manage files (delete, purge, edit). STRUCTURE OF THIS DOCUMENT This manual contains six chapters and two appendices. o Chapter 1, Introduction to FLIST, provides an overview of FLIST, describes terms and conventions used in FLIST, and describes the simplest level of screen manipulation and command entry. o Chapter 2, FLIST Commands, describes the keyword commands (e.g., file management) which FLIST processes. o Chapter 3, Display Manipulation, describes the commands which alter the directory display (i.e., sorting and column selection). o Chapter 4, Invoking FLIST, explains how to run FLIST and describes all of the command line qualifiers. o Chapter 5, VT100/VT52 Keypad, describes the key assignments for the VT100 and VT52 keypads. o Appendix A, Implementation, provides a more technical description of the design goals of FLIST, and features which may be implemented in the future. o Appendix B, Command Summary, describes all FLIST commands in a short, concise form. CHAPTER 1 INTRODUCTION TO FLIST FLIST (directory-editor) provides you, the user with a powerful and versatile interface to VAX/VMS. Rather than the line-oriented, "glass teletype", FLIST is a full-screen editor which shows the effects of commands rapidly and naturally. It provides both interfaces to VAX/VMS file management commands (EDIT, COPY, RENAME) as well as extensions to the command interface to better integrate VMS commands, and to augment them o Directory sorting shows you the relationship between files based on their directory-attributes (e.g., size, date). o Alternate display formats (from a palette of directory-attributes) can easily be constructed. o A built-in command history and parameter substitution facility makes FLIST simple to learn and easy to use. o Commands which alter or create files are reflected in the display, which is updated automatically for most operations. 1.1 CONFIGURATION REQUIREMENTS FLIST's screen management will run on any VT52, VT100 or other ANSI x3.64-compatible terminal. FLIST is written in VMS-C, and occupies approximately one hundred kilobytes of memory (three-fourths code). It has been tested under VMS versions 3.6, 3.7 and 4.0 (field test 2). FLIST is used to manage files on a Files-11 (disk) device. 1.2 DISPLAY WINDOW FLIST uses the entire terminal screen to display the directory. The file name, type and version occupy the left side of the screen. For easy readability, all items are aligned into columns. The width of the INTRODUCTION TO FLIST Page 1-2 name-columns is extended to match the widest item in the current display-list. Additional information about each file is presented in columns to the right of the name columns. The normal display format (the column-list) shows the file size, its creation date and protection mask. The display format may be altered either by permuting the columns or by substituting columns with different attributes. A sample display layout is shown in Figure 1. Screen dumped: 28-DEC-1984 08:06:12 Image top: 0 bottom: 22 +---------------------------------------------------------------------+ |D0 BRN;3 8 28-DEC-1984 08:03 rwed rwed r-e- r-e-| |FL BUG;1 1 13-DEC-1984 16:15 rwed rwed r-e- r-e-| |FL CLD;6 1 20-DEC-1984 09:25 rwed rwed r-e- ----| |AAA COM;8 2 1-NOV-1984 19:12 rwe- r-e- r-e- r-e-| |FL COM;9 1 20-DEC-1984 09:39 rwed rwed r-e- ----| |LOGIN COM;19 4 27-DEC-1984 14:08 rwe- r-e- r-e- r-e-| |ZAP COM;15 2 27-DEC-1984 16:30 rwe- r-e- r-e- r-e-| |EDTINI EDT;1 1 17-OCT-1983 15:32 rwe- r-e- r-e- r-e-| |AAATERM EXE;8 49 29-MAY-1984 07:56 rwe- r-e- r-e- r-e-| |FL EXE;1179 240 26-DEC-1984 11:12 rwe- r-e- r-e- r-e-| |MORE EXE;758 117 4-DEC-1984 07:00 rwe- r-e- r-e- r-e-| |SORTX EXE;14 73 2-DEC-1984 20:51 rwe- r-e- r-e- r-e-| |TH HLB;1 68 25-DEC-1984 21:36 rwed rwed r-e- r-e-| |FL HLP;47 29 27-DEC-1984 09:58 rwed rwed r-e- r-e-| |ACPLOOK LIS;2 13 22-DEC-1984 18:08 rwed rwed r-e- r-e-| |CHPROT LIS;3 11 21-DEC-1984 20:57 rwed rwed r-e- r-e-| |CMDSTK LIS;6 16 22-DEC-1984 10:28 rwed rwed r-e- r-e-| |DACP LIS;3 29 22-DEC-1984 19:04 rwed rwed r-e- r-e-| |DCLARG LIS;2 47 26-DEC-1984 06:43 rwed rwed r-e- r-e-| |DCLWILD LIS;3 6 26-DEC-1984 11:03 rwed rwed r-e- r-e-| |DDS LIS;2 57 21-DEC-1984 21:36 rwed rwed r-e- r-e-| |DIRCHK LIS;2 12 26-DEC-1984 06:45 rwed rwed r-e- r-e-| |DIRCMD LIS;7 91 24-DEC-1984 21:01 rwed rwed r-e- r-e-| |Path: DBA1:[DICKEY] 1 of 53 | +---------------------------------------------------------------------+ Figure 1 Sample Screen Dump 1.2.1 Status Line The last line in the screen is reserved for status and messages: o Normally the status line shows the current default directory (set to the directory containing the current file entry), and the index number in the total number of files in the display-list. o During execution of more lengthy commands, the index-number field will be replaced by "working...". INTRODUCTION TO FLIST Page 1-3 o Commands which generate an error message send the text to the status line. If an error message has already been sent to the status line by the current command, FLIST pauses before writing the new message, giving you time to see each message. o Error- and informational-messages remain on the status line until they are replaced by another message, or until you enter a new command. Normally the first character of a new command causes FLIST to clear the message line (showing the current directory). Single-keystroke commands are treated specially, however. For example, if you type a CTRL/T (scroll-to-top) when the cursor is already at the top of the display list, FLIST will warn you. Repeating the CTRL/T does not cause the message to be cleared, because FLIST can immediately test for this repeated error. 1.2.2 Display-List The list of files which are described in FLIST's tables is denoted the display-list. FLIST maintains a table of information (indeed, a private copy of the directory) for each file, whether or not it is currently displayed. Commands which alter the display format present different slices of this directory. FLIST maintains an auxiliary table, the read-list, which is a list of the expanded file specifications used to construct the display-list. FLIST is hierarchical; it may recur upon itself to construct new read- and display-lists. 1.3 COMMAND ENTRY FLIST accepts three types of user input: o Control characters, o Keypad, and o Typed ("visible") commands. All keypad commands correspond to either a control character or a visible command. The control character commands may also be entered by a short "visible" command. Thus, FLIST makes use of single-keystroke commands for efficiency, but will run properly on terminals which do not have a keypad, or through interfaces which cannot pass the complete set of control characters. 1.3.1 Configuration Requirements The minimum keyset needed to run FLIST is: INTRODUCTION TO FLIST Page 1-4 o The normal set of "printing" ASCII characters, and o The cursor arrow keys (UP-ARROW, DOWN-ARROW, LEFT-ARROW, RIGHT-ARROW), and o VMS-related control keys: CTRL/U (or CTRL/X), CTRL/K, CTRL/N, CTRL/W, DELETE and RETURN. Other control keys such as LINE-FEED, BACKSPACE, CTRL/R and CTRL/N are useful but not essential. 1.3.2 Scrolling FLIST accepts command input in a natural fashion. To operate upon a file, you scroll the cursor to the line representing the file and enters a command. Scrolling is accomplished by entering 1. the index number in the display to which the cursor should jump, or 2. a single-keystroke scrolling command, or 3. the command to which a single-key command corresponds. After scrolling, FLIST displays the index of the cursor in the display list in the status line. Files which have been deleted are excluded from this index. (FLIST automatically skips over deleted-file entries, which are blanked). FLIST's scrolling commands are summarized below. The "visible" commands begin with a slash "/". Their minimum abbreviation is shown in parentheses: CTRL/T /TOP (/TOP) Scroll to the first file entry in the display-list. CTRL/E /END (/END) Scroll to the end of the display-list. CTRL/F /FORWARD (/F) Scroll forward by one screen. If less than one screen remains in the display-list, scroll upward until the end-entry is visible, then place the cursor at the resulting top-of-screen (i.e., the HOME position). CTRL/B /BACKWARD (/B) Scroll backward by one screen. If less than one screen precedes the display-list, scroll to the top of the display-list. INTRODUCTION TO FLIST Page 1-5 /HOME (/H) Scroll to the HOME position (top of the current screen). /MIDDLE (/M) Scroll to the middle of the current screen. /LOW (/L) Scroll to the LOW position (bottom of the current screen). BACKSPACE UP-ARROW Move up by one line. If the cursor is at the top of the screen, index the display by one line, then place the cursor at the resulting top of screen. RETURN ENTER DOWN-ARROW Move the cursor down by one line. If the cursor is at the bottom of the screen, index the display by one line, then place the cursor at the resulting bottom of screen. {number} A number directs FLIST to place the cursor at the file entry with that index. If followed by a plus or minus sign, FLIST moves the cursor relative to the current index. 1.3.3 Visible Command Entry Whenever you type a printing character, FLIST enters visible-command mode, and echoes the command characters until you hit RETURN (or ENTER, which is always treated the same by FLIST). The echoed command is displayed immediately after the file name columns, and may overlay the directory attributes. (To distinguish the command text from the display, the command is lowercased and highlighted). 1.3.4 Command Editing The command may be edited or canceled: DELETE Delete the character before the cursor. LINE-FEED Delete the "word" before the cursor. A word is delimited by spaces. BACKSPACE KEYPAD-"0" Move the cursor to the beginning of the command. INTRODUCTION TO FLIST Page 1-6 CTRL/D LEFT-ARROW Move the cursor left one character. CTRL/F RIGHT-ARROW Move the cursor right one character. CTRL/E KEYPAD-"2" Move the cursor to the end of the command. CTRL/U CTRL/X Erase the command, exiting from command-entry mode. RETURN ENTER Completes the command, directing FLIST to execute it. 1.3.5 Command History FLIST maintains a hierarchical command-history. Each visible command (except number-scrolling) is saved in a stack for later retrieval: o If the latest command text matches any of the most recent 3 items (the top of stack) no push is done, but the top-of-stack is rotated. o If no match is found in the top of stack, the entire stack is pushed. The combined strategy results in a much longer effective buffer memory than would a simple stack, since frequently used commands tend to be repeated within one or two commands. The stack is hierarchical as well. If you enter a new display-list, FLIST allocates a new stack buffer and copies the state of the higher level to the new stack. On exit from the lower level, FLIST resumes with the original state of the higher level. Thus, excursions will not clutter the command history. Stacked commands may be recalled for reexecution with single-keystroke commands: KEYPAD-"-" "-" FLIST enters command-entry mode with the last command text shown, and the cursor positioned at the end of the command. The "-" is recognized only when FLIST is not in comment-entry mode, since this character is used in VMS commands. The keypad control may be used at any point. INTRODUCTION TO FLIST Page 1-7 UP-ARROW KEYPAD-"-" If FLIST is in command-entry mode (i.e., the text of a partly completed command is visible on the screen), these controls attempt to recall an earlier stacked command. The UP-ARROW key is used for command retrieval only when FLIST is in command-entry mode, since otherwise it is used for cursor movement. DOWN-ARROW If FLIST is in command-entry mode, it attempts to recall a later stacked command. The DOWN-ARROW key is used for command retrieval only when FLIST is in command-entry mode, since otherwise it is used for cursor movement. 1.4 COMMAND SUBSTITUTION Some of FLIST's commands require one or more arguments (usually a filename). In most cases, the argument can be made implicit (i.e., the current entry in the display-list). If FLIST were restricted to only implicit arguments, it would be quite inflexible. To avoid this, FLIST provides substitution operators to specify the actual arguments of a command, and their order. 1.4.1 Token Substitution In most cases, the order of arguments appears unambiguous: DELETE - no arguments, simply delete the current-file RENAME - one argument, the new-file name Suppose, however, that you wish to rename a different version of the current file (one which does not even appear in the display list) to supersede the current entry. In this case, the current entry is not even an argument. Also, an implicit-argument approach to COPY would permit you to only create files, not to supersede existing ones. To uniquely specify arguments and ordering, FLIST uses two special tokens: /O The omit-operator directs FLIST to omit the use of the current filename as an implicit argument. For most commands, FLIST would otherwise append the filename from the current entry in the display-list. / The after-operator directs FLIST to put the remaining text of the command after the current filename. Actually, the first time that the after-operator is encountered, FLIST inserts the current filename. Successive occurrences are ignored. If it is evoked at least once, INTRODUCTION TO FLIST Page 1-8 FLIST will not put the current filename at the end of the resulting command. The command substitution operators are detected whenever their text appears with no following VMS name-characters (i.e., alphanumerics, "$", "_"). For example, suppose that the current file is DBC4:[DICKEY]FLIST.EXE;1200. Then the commands COPY / x COPY x COPY // (see note below on syntax) COPY x y (syntactically in error, see below) would be translated to COPY DBC4:[DICKEY]FLIST.EXE;1200 x COPY x DBC4:[DICKEY]FLIST.EXE; COPY DBC4:[DICKEY]FLIST.EXE;1200 COPY x y DBC4:[DICKEY]FLIST.EXE; FLIST makes a special case for "COPY x", stripping the version number from the output file when the command implies that it has the same name as the current entry. This causes VMS to create a new version. Thus the first two examples are proper COPY commands. The case "COPY / /" is syntactically proper, but produces only one substitution. This produces an error message (no output file given). The last example also is in error, since it results in three arguments, where COPY expects two. This command might be re-entered as COPY x,y or /O COPY x y depending on whether you wanted to use both 'x' and 'y' as inputs and the current entry as outputs, or if you wanted to copy 'x' to 'y'. You may copy components of the current filename (via substitutions performed by FLIST when executing a command). For example, if the file entry is that shown above /P substitutes the path, "DBC4:[DICKEY]" /N substitutes the name, "FLIST" /T substitutes the type, "EXE" /V substitutes the version, "1200" You must supply the "." and ";" punctuation to construct a filename by substitution, e.g., "/N./T". Thus, all, none, or part of the current filename may be included in command substitution. INTRODUCTION TO FLIST Page 1-9 1.4.2 Symbol Translation Before interpreting a command, FLIST tests the command keywords: o If the keyword is found in its symbol table, FLIST accepts it, and carries out the token-substitution and executes it. o If the keyword is not found in its symbol table, FLIST determines if it is defined as a symbol. If so, FLIST tests the keyword-part of the translation. If this is found in its symbol table, FLIST performs the substitution, and processes the resulting command. o If the keyword is not found in any table, FLIST reports an error. Presently FLIST does not permit unknown commands to escape. No other type of symbol substitution is presently performed by FLIST except indirectly, in the commands which are performed by spawned processes. 1.4.3 Default-Propagation In addition to the explicit token-substitution and implicit symbol-translation activity described above, FLIST also employs the usual VMS default-field propagation. For example, the RENAME command (which is performed within FLIST) could be used on the preceding example: REN / x to produce DBC4:[DICKEY]X.EXE;1 or REN / x;* to produce DBC4:[DICKEY]X.EXE;1200. The VMS convention propagates specified fields to unspecified fields, treating "*" as a special case to override the RENAME command's tendency to rename to version-one. CHAPTER 2 FLIST COMMANDS This chapter presents a description of the principal (file and display-list management) commands of FLIST. 2.1 APPEND (AP), COPY (CO) Use COPY to create an output file which is the concatenation of one or more input files. APPEND is similar to COPY, but specifies that a given output file is to be augmented by this concatenation. Format: Both commands accept the standard set of VMS APPEND and COPY options. FLIST permits the current-entry to be either the source operand COPY / newfile or the destination (implicitly creating a new version) COPY newfile or neither /O COPY oldfile newfile The source operand list may include files not presently in the display-list. The destination (a new or modified file) is appended to the display-list. Notes: FLIST uses the VMS commands APPEND and COPY to implement these functions. However, FLIST does not permit a wildcard in the output list, to simplify display-list updates. FLIST COMMANDS Page 2-2 2.2 CREATE (CR) The CREATE command is simpler than the VMS command CREATE. It allows you to create a file or a directory. FLIST examines the argument to see which it is. 2.3 DELETE (DEL) The DELETE command is unlike the VMS command DELETE. There are several differences: o The files to be deleted must reside in the display-list. FLIST deletes only files which it can see. o If you attempt to delete a directory (a file whose type is ".DIR"), FLIST first tests to see if there are any files in the directory. If any are found, FLIST will not delete the directory. o FLIST tests the file type further. If it is that of any temporary file (e.g., ".JOU" or ".LIS"), FLIST will delete it. o If the file type is not a directory or temporary file, FLIST assumes this is a permanent file. If the specified file is the last version, FLIST prompts you to ensure that you really wish to delete it. The responses to a prompt are: Q Quit the deletion. Y Yes, perform the deletion. N No, don't delete this file. G Go: delete this file, and don't ask again, if further files are found in this command. In short, the differences provide a greater degree of reliability than the unadorned VMS file-deletion command. Format: The current entry may be deleted DELETE or any other set of files /O DELETE filespec If a wildcard is given, FLIST will scroll to the location of each permanent file if a prompt is needed before deleting it. On completion, FLIST reports the number of files which were deleted. FLIST COMMANDS Page 2-3 Notes: The file-deletion command is implemented internally and does not recognize any of the VMS file-deletion options. Wildcards may be used, but only one field (e.g., "*.FOR" rather than "*.FOR,*.LIS") may be given. Like VMS DELETE, no attempt is made to override the protection codes before deletion. Protection violations are reported in status messages. 2.4 EDIT (E), VIEW (V) The EDIT and VIEW commands effect changes in the display-level. They o open a file for editing (in read-only mode, if VIEW), or o enter a new display-list if - the file is the current entry and a directory, or - a list of files is given or - the file specification includes a wildcard. In entering a new display-list level, the EDIT and VIEW commands are equivalent. VIEW is entirely equivalent to EDIT, save that it appends a "/READONLY" option to file-editing. The EDIT command is used to expand a directory to a new display level because this is a natural view of the process. Format: The EDIT accepts an input argument, which may be a single argument, or a list of files. It may be used on the current file EDIT on another file /O EDIT filespec or on both EDIT /,filespec (causing FLIST to enter a new display level). The default specification for the input argument always includes a wildcard: *.*; *.*;* depending on the setting of the "/VERSION" option when FLIST is invoked. FLIST COMMANDS Page 2-4 Also, null file specification items inherit from the preceding item. Therefore, when specifying the name of a file other than the current entry, you must be careful to use the ";" (current version indicator) properly. For example, suppose that you wish to create a new file "X.FOR". If you type the command /O EDIT X.FOR FLIST will interpret that as EDIT X.FOR;* and attempt to open a new display-list (failing if there is no file of any version named "X.FOR"). To avoid this, type /O EDIT X.FOR; If you have no write-access on the directory within which a file is contained, or if higher versions of the file exist, FLIST coerces the EDIT command to VIEW (read-only), since the editor could not successfully update the file. If, on the other hand, the file is modifiable, FLIST looks for a new version of the file on exit from the editor to update the display: o If the edited file is the current entry, FLIST replaces this entry by the new version, and puts the display-entry for the old version in the first free slot in the display-list. o If the edited (or new) file is not the current entry, FLIST creates a new display entry for this file in the first free slot in the display-list. Thus you may enter and exit the editor returning to the same position in the display list. Older versions of the edited file are pushed off to the side, but still accessible. Notes: FLIST uses the VMS editor program to perform file-editing. It assumes that this is the EDT editor: o The "/READONLY" option sets the editor to read-only mode (i.e., no updates are permitted; the editor is used only for browsing). o The "/COMMAND" option directs the editor to read a set of initialization commands from the specified file. In particular, FLIST looks in your home directory for the file "EDTINI.EDT". If found, FLIST appends a "/COMMAND" option to your EDIT and VIEW commands. o Other options are permitted in file-edit, but are not interpreted by FLIST. They are passed to the VMS editor. EDIT commands which result in a new display list do not permit options. FLIST's options (other than those implemented as display-commands) are fixed after entry. FLIST COMMANDS Page 2-5 2.5 FIND (F) The FIND command searches for file entries in the display-list by name. Together with the NEXT command (CTRL/N or PF3), the name-search helps you quickly find all occurrences of a given file specification. The cursor is positioned at the next entry, in the prevailing search/scroll direction. Format: FIND does not explicitly use the current entry. It requires a file specification, which may contain a wildcard. Examples of the FIND command include: FIND *.FOR FIND /N FIND will inform you if there are no occurrences of the specified file, or if the current entry is the only occurrence. Notes: The FLIST file-search operation (used for all wildcard searches, such as in DELETE and PURGE) searches the display-list in the order in which it is displayed. To accomplish this, FLIST performs its own wildcard matching: o FLIST recognizes the predominant VMS wildcards "*" and "%", and processes them identically to VMS. o A wildcard version number is permitted, as is a relative (e.g., ";-1") version number. Relative version numbers, however, run more slowly since they must be interpreted. o The "..." (wildcard in directory name) is interpreted by FLIST as a wildcard "*", which may appear anywhere in the directory string. Thus, "[NAME...]" would be matched by "[NAMEX]" as well as "[NAME.X]". o If no pathname is specified in the search specification, FLIST translates this to a wild-device "*:". Thus, FLIST interprets wildcard very much like VMS, except that it simplifies the handling of wildcards in directory and pathnames. This is done both to simplify (and speed up) the search, and well as to simplify the VMS directory structure. Presently, the search utility processes only a single-entry file specification (e.g., "*.FOR", rather than "*.FOR,*.LIS"). 2.6 HELP (H) The HELP command runs the BROWSE program to display a file which summarizes all of the FLIST commands. (This summary is reproduced as Appendix B.) FLIST COMMANDS Page 2-6 Format: HELP requires no arguments. Alternate forms of HELP include: /HELP (/H) ?HELP (?) Notes: The FLIST help-file must reside in the same directory as the FLIST program. 2.7 INSPECT (I) The INSPECT command inspects one or more files to see if they are binary or ASCII. INSPECT is an aid to browsing directories; it finds those files which probably are human-readable. Format: INSPECT permits a single file specification (with wildcard). If no file specification is given, INSPECT examines the current entry. Only files which appear in the display-list are examined. Notes: INSPECT reads the first 512 characters of each file which is specified. It tests each character which is read. If any has the parity bit set, or is a control character other than the standard carriage controls (RETURN, TAB, LINE-FEED, FORM-FEED or BACKSPACE), the file is flagged as non-ASCII. The display flag is presented at the beginning of the FORMAT display-column. ASCII files are flagged with an "*". This flag is reset whenever the display-list entries are reread (e.g., in the READ command). 2.8 BROWSE (M) The BROWSE command evokes the BROWSE browsing program, which is described in full in another document. BROWSE is a versatile display program, which supports a variety of display modes, search commands, and scrolling up/down and left/right. Format: The BROWSE command accepts all options of the BROWSE program except those which would alter the terminal characteristics (i.e., "/BG"). It accepts a single file specification (no wildcards). If none is given, the current entry is assumed. FLIST COMMANDS Page 2-7 Notes: The BROWSE program is integrated into FLIST. Thus it is is both versatile and fast. 2.9 NEXT (N) The NEXT command continues the last search begun with FIND or NFIND. If no search pattern was given previously, an error is reported. Format: NEXT uses no arguments; it uses the search pattern given by the last FIND or NFIND command. NEXT may be invoked with a CTRL/N or PF3 (like EDT). Notes: NEXT uses the common FLIST search function. See FIND for a full description. 2.10 NFIND (NF) NFIND is the logical complement of the FIND command. It searches for the first file not matching the file specification. This enables you, for example, to skip over a series of files which have the same file type. Like FIND, NFIND may be followed by the NEXT command. In the NEXT command, FLIST will search for either the file matching or not matching the search pattern, depending on whether FIND or NFIND initiated the search. Format: NFIND requires a single file specification. Wildcards may be used. Notes: NFIND uses the common FLIST search function. There is one instance in which its operation is not immediately obvious. If command substitution is used, e.g., NFIND *./T FLIST will skip past all files having the same file type as the current entry on invocation. FLIST loads the search pattern once only, when the search is initiated. A single NFIND command cannot be used to set a pattern which will be reevaluated each time NEXT is invoked. To successively skip to the next file type, a combination of command retrieval and reexecution is required. FLIST COMMANDS Page 2-8 2.11 PRINT (PR) The PRINT command prints files using the VMS PRINT utility. Format: PRINT accepts an input list (including the current entry) and any legal combination of options for the VMS PRINT command. To print only the current file, give no file specification: PRINT or, to print the current file with others: PRINT /,otherspecs or, to print an arbitrary list of files: /O PRINT filelist Notes: FLIST uses the VMS PRINT command to perform the print operation. The "/NOIDENTIFY" option is used to suppress the normal job-enqueued message returned by PRINT, to keep FLIST's display neat. (This cannot be overridden since it is supplied after all user options.) Because FLIST uses the VMS PRINT utility, the files to be printed need not appear in the display list. However, FLIST does verify the existence of these files. 2.12 PROTECT (PRO) The FLIST PROTECT command allows you to issue a "SET PROTECTION" command, or to enter a protection-editing mode (which is much simpler than the baroque VMS protection command). Format: The PROTECT command accepts a set of protection codes, in VMS format. There are four protection levels: SYSTEM, OWNER, GROUP, WORLD Each may be set to any combination of READ, WRITE, EXECUTE, DELETE For example, to set a file's protection so that anyone in the same accounting group has read and execute access, type FLIST COMMANDS Page 2-9 PROTECT=G:RE If more than one level is specified, parentheses must be used to group the codes: PROTECT=(G:RE,W:E) Rights may be denied entirely by not specifying rights after the level name: PROTECT=G If no codes are given, FLIST enters a special protection-editing mode. FLIST moves the cursor to the protection-MASK display field. By single keystroke commands, you may modify the protection codes: o The LEFT-ARROW and RIGHT-ARROW keys (or CTRL/D and CTRL/F) move the cursor left or right, respectively, through the 16-bit protection display. The cursor wraps-around when it reaches the end of the display field. A secondary display field is maintained in the command field, showing the name of the protection level within which the cursor lies: SYS - SYSTEM OWN - OWNER GRP - GROUP WLD - WORLD o The "," key moves the cursor to the next protection level, moving rightwards, with wraparound. This is useful for rapid, precise cursor movement. o The UP-ARROW and DOWN-ARROW keys enable and disable the flag at the cursor position. The cursor is moved rightwards by one flag-bit. Flags which are altered during the editing process are both highlighted and translated to make changes visible: - Flags which have been enabled are uppercased. - Flags which have been disabled are shown as ".", rather than the ordinary "-". o The "Y" and "N" keys (case-independent) respectively select and deselect entire protection levels. If no changes have been made to a level, the "Y"-selection will still force FLIST to put the corresponding text of the protection-code into the command history, for later retrieval. This facilitates copying the protection codes from one file to another. o CTRL/U or CTRL/X aborts the editing process. o RETURN or ENTER issues the command. If no changes have been made, FLIST will not actually change the file (thus avoiding unnecessary modifications to the file). FLIST COMMANDS Page 2-10 The PROTECT command may also be invoked by typing CTRL/P. If the latter is used, no command text is saved for the command history. Normally, the completed text of the PROTECT command replaces the partial (i.e., without codes) text in the command history. For example, you might type PRO and follow it with four UP-ARROW keystrokes and RETURN. If the file's protection did not already specify "O:RWED", FLIST would replace the "PRO" by PROTECT=(O:RWED) Notes: The only syntactic difference between the FLIST PROTECT command and the corresponding VMS SET operation is that FLIST does not use the SET keyword. FLIST does not modify the default protection which it inherits from your environment on invocation; hence there is no need for a separate SHOW PROTECTION command. If FLIST is run from the system console, the CTRL/P protection-edit should not be attempted. It stops the VAX computer! The PROTECT command affects only the current file entry. 2.13 PURGE (PUR) Like the VMS PURGE command, the FLIST PURGE command deletes obsolete versions of a file. Unlike VMS, FLIST allows you to be more selective about the files which are not deleted. Format: PURGE accepts a single file specification (with wildcards). If no file specification is given, PURGE assumes the current entry. PURGE deletes all unprotected files which have lower versions than those which match the file specification. For example, there may be three files, X.FOR;5 X.FOR;4 X.FOR;3 If you position the cursor at the "X.FOR;4" entry and types "PUR", then the lowest version only will be deleted (i.e., "X.FOR;3"). If you then type /O PUR /N./T; then the current entry would be deleted, since it is not the highest version. Notes: PURGE uses the common FLIST search utility. It recognizes no options. Like FLIST COMMANDS Page 2-11 DELETE, PURGE reports the number of files which are deleted, as well as the version numbers of those which it could not delete. PURGE affects only those files which appear in the display-list. 2.14 QUIT (Q) The QUIT command exits from one or more display levels, restoring FLIST's status before entering the level. Format: QUIT permits a single argument, to specify the number of levels to be exited: o a positive integer, or o the flag "*" (directing FLIST to quit all levels). If no argument is given, FLIST quits one level only. If no more levels remain to quit, FLIST terminates. CTRL/Z (VMS end-of-input) is treated by FLIST as a single-level QUIT. Notes: Quitting multiple levels with a single command is faster than quitting them one by one, because no display refresh is required. 2.15 READ (R) The READ command rereads old directory entries, or appends new ones to the display list. Format: READ accepts an input list (zero or more file specifications separated by comma). If no specification is given, READ rereads the directory of each file specification using the read-list. If a specification is given, READ reads the directory entries which match the specification. FLIST also appends to the read-list each (expanded) specification from the input list which did not previously appear in the read-list. In this way, you may either refresh your directory display (to account for commands executed via spawned subprocesses), or augment the display by adding new display entries. A CTRL/R performs a reread for the current file only. FLIST COMMANDS Page 2-12 Notes: FLIST appends new file specifications to the read-list if they differ from all previous members. It can not determine if one specification's range overlaps another's. For example, the specification list *.*,*.FOR need result in only one item, since the "*.FOR" is easily determined to be a proper subset of the "*.*". However, *.F*,*.*R will result in two items for the read-list, even though the only files satisfying this would be "*.FOR". If several grossly-overlapping specifications are entered into FLIST's read-list, performance of the READ command will deteriorate markedly. 2.16 RENAME (REN) The RENAME command renames a single file. VMS permits any combination of the directory-path, name, type or version to be altered. (A file may be renamed into another directory if both reside on the same device). Format: RENAME requires two arguments, a source and destination file specification. Notes: FLIST does not permit wildcard renames, nor does it recognize any of the options supported by the VMS RENAME facility. Files which are not in the display-list may be renamed. The resultant file is appended to the display-list. 2.17 SPAWN (SP) The SPAWN command uses the VMS subprocess-spawn facility to create a subprocess in which you can enter normal VMS commands. Format: The SPAWN command uses no arguments. To exit from the subprocess, type LOGOFF. FLIST COMMANDS Page 2-13 Notes: The subprocess inherits all of the parent process's symbols, but not all of its rights. For example, print jobs enqueued by the parent process cannot be deleted from a subprocess. Nor can batch jobs be removed. However, most files can be modified, and additional batch jobs and print jobs enqueued. Thus, a spawned subprocess is a nearly-transparent copy of the original parent process from which FLIST is run. Spawning a subprocess can be slow. It has as much overhead as logging on. The major difference is that you need not specify a password to enter the subprocess. Exiting from the subprocess is fast, however, and FLIST will immediately refresh the display. Spawning a subprocess uses up one of the subprocesses in your subprocess limit. Because FLIST employs no subprocesses, it is possible to enter FLIST more than once if your subprocess limit is at least two. FLIST does not catch CTRL/C. If you interrupt any task in the subprocess with a CTRL/C, then on exit from the subprocess FLIST will be terminated. 2.18 SUBMIT (SU) The SUBMIT command enables you to submit batch jobs from FLIST. Format: SUBMIT follows the same format as in the VMS command. It expects an input list. This FLIST command is particularly well-suited for symbol substitution. Commonly used batch jobs should be equated to symbols, e.g., FTN*COMPILE :== SUBMIT/QUEUE=SYS$BATCH FTNCOM.COM PARA= Then, the symbol FTNCOMPILE could be used as a FLIST command accepting the current file entry as an argument: FTN FTN (/,proc-options) FTN / submit-options Notes: FLIST uses the VMS SUBMIT command to implement its SUBMIT. It sets the "/NOIDENTIFY" option to make the display neater, as in PRINT. 2.19 VERIFY (VE) The VERIFY command supplements the READ command. Rather than augmenting the display-list, it removes items. FLIST COMMANDS Page 2-14 Format: Like READ, VERIFY accepts a file specification list. It performs one of two closely related trimming functions, depending on whether an argument list is given: o If no list is given, VERIFY trims from the display-list all entries which do not appear in a rescan of the read-list. All files which were deleted by programs unknown to FLIST will be removed from the display-list, as well as those which do not match any specification in the read-list (e.g., those which were renamed). This global scan may be invoked with a CTRL/V. o If an argument list is given, VERIFY rescans all files in the display-list which match any specification in the argument list. Any files found to have been deleted are removed from the display list. Notes: VERIFY uses the common FLIST search utility to implement the wildcard matching of display-list entries against its argument list. All entries are matched before performing the directory scan. Like READ, VERIFY's performance will degrade if the read-list contains much overlap. CHAPTER 3 DISPLAY MANIPULATION FLIST's most powerful function is the dynamic display formatting, which permits you to view the directory in a wide variety of formats. 3.1 DIRECTORY SORTING Using FLIST, you may sort by anything on the screen: o Name fields (e.g., the file name, type and directory-path). o Date fields (the creation, backup, expired and revision dates), and their major components (day-of-week, hour-of-day). o Size (of the file, in blocks, or its allocated space). o Anything (file protection, format, record attributes). For each display-column on the screen, FLIST defines a normal and reverse sorting function. The names for the sorting commands are derived from the sorting sense and the column type. Normal sorting commands begin "/S", reverse sorting with "/R". The remainder of the command is the column-keyword (e.g., "/SDATE"). 3.1.1 Sorting And Column Keywords The display column names are chosen to be unique with the first character (the minimum abbreviation): ALLOC The file allocation, in blocks (generally larger than the file size). BACKUP The last date on which the file was backed-up. CREATED The creation date of the file. DATE Any of the file dates, depending on the current display mode (see "/D" commands). DISPLAY MANIPULATION Page 3-2 EXPIRED The expiration date of the file. FORMAT The file format (e.g., VAR for variable, VFC for variable-with-fixed-control). HOUR The hour-of-the-day component from the DATE field. MASK The file's protection mask, from left to right is SYSTEM, OWNER, GROUP and WORLD. NAME The file name. This field always appears in the leftmost display column. OWNER The file owner's identification code (two octal numbers separated by ","). PATH The file's node-device-directory path. FLIST displays the PATH for the current file in the status line. It may also be put in a display column. REVISED The file's revision date (i.e., when it was last modified). SIZE The file size, in blocks. TYPE The file type (without the leading "."). TYPE always appears as the second display column. VERSION The file's version number, left-justified and separated from the TYPE field by a ";". VERSION always appears as the third display column. USER The file's owner in symbolic format WEEK The day-of-the-week component of the DATE display field. XAB Literally "extra-attributes", this is the set of record attributes. It is considered an augmentation of the FORMAT display column, and is always sorted within the FORMAT field's value. 3.1.2 Sorting Order The normal sorting order for text fields (PATH, NAME, TYPE) is in increasing ASCII collating order. For all numeric fields (e.g., DATE, MASK) the normal sorting order is in decreasing numeric order. FLIST makes adjustments to the PATH string so that it will sort properly (i.e., in the conventional order used by VMS) rather than in a strict collating order. It also treats specially the date-fields of file entries which are not initialized properly by the directory lookup operation: o Files which cannot be viewed (due to insufficient privilege) have a date of zero (the oldest). This field is blanked in the display. DISPLAY MANIPULATION Page 3-3 o Backup dates of files which are otherwise accessible may be internally set to a large number if the file has not been backed-up. This forces files which have not been backed-up to appear at the top of a normal sort-by-date. There are two types of sorts performed by FLIST. Either it is sorting some combination only of PATH, NAME, TYPE and VERSION, or it is sorting one of the non-filename fields. In the latter case, FLIST always follows the non-filename comparison with NAME, TYPE, PATH and VERSION. The name-only sorts are performed by permuting the filename components: PATH NAME TYPE VERSION NAME TYPE PATH VERSION TYPE NAME PATH VERSION VERSION NAME TYPE PATH The ordering of the sort keys (e.g., NAME, TYPE, PATH, VERSION) is designed to yield the most informative display: o Sorting by PATH (PATH, NAME, TYPE, VERSION) corresponds to the normal sorting order obtained by a wildcard directory listing of the form DIRECTORY [...] All files for each directory are listed before proceeding to the next directory. All files are listed alphabetically by name, and by type within the name. Versions are listed in descending order. o Sorting by NAME (NAME, TYPE, PATH, VERSION), on the other hand, permits you to easily see files which appear in more than one directory, or those which differ only by type. It is the most natural way of sorting the directory entries, because the file name carries the most meaning. o Sorting by TYPE (TYPE, NAME, PATH, VERSION) groups together files having the same type. This is valuable when managing a large collection of different types of files. The file type is usually related to the use of the file. o Sorting by VERSION (VERSION, NAME, TYPE, PATH) shows the files with the highest version numbers. Using this sort, you may easily determine the files which have been most modified. The sort-by-NAME (NAME, TYPE, PATH, VERSION) is the default sorting order used by FLIST. NAME is first, because this is most natural to users. VERSION is last, because this will cause files having the same version in different directories to be display on consecutive lines. PATH, then, is a super-version of the file, and is sorted immediately above VERSION. 3.1.3 Fixed-Point Sorting When performing a sort, FLIST normally concludes the operation by scrolling the cursor to the top of the display list. You may inhibit this scrolling by DISPLAY MANIPULATION Page 3-4 making one file entry into a fixed-point. There are two types of fixed-point sorting, temporary and latching: o A temporary fixed-point sort is invoked by typing the sort-command with an extra "/" prefix (e.g., "//SD" instead of "/SD"). The current file entry acts as a fixed-point; after the sort the cursor will be scrolled to wherever this entry has been moved. o A latching fixed-point sort is invoked by the mark-command: - The "/MARK" (/MAR) command sets the current file entry as a fixed-point, which lasts until it is explicitly reset. FLIST highlights the selected filename in the display. - The "/NOMARK" (/NOM) command clears a latched fixed-point, wherever it is. If no changes are made to display as a result of the sort, FLIST will not move the cursor. If changes are made, and a fixed-point is active, FLIST will always reposition the cursor to the fixed-point with higher priority. A temporary fixed-point overrides a latching fixed-point. FLIST may make changes to the display, even if no change has occurred in the order of display entries. When you delete files, FLIST blanks the entries which appear on the screen, rather than redrawing the screen. When FLIST performs a sort, it also compacts the portion of the display list which is visible. (The portion of the display-list which is not visible is always kept up to date, since this requires much less time). 3.2 DISPLAY FORMAT COMMANDS Using simple FLIST commands you can easily alter the screen format to show various file attributes. 3.2.1 /COLUMNS (/C) The principal display command is the column-set command "/COLUMNS". This command accepts a list of the display-columns which FLIST displays. It may be invoked at any time. The "/COLUMNS" command accepts an optional list of keywords. These keywords (which may be abbreviated to a single character) are the portions of the FLIST display which are not permanently assigned: ALLOC, BACKUP, CREATED, DATE, EXPIRED, FORMAT, MASK, OWNER, PATH, REVISED, SIZE, USER, XAB The remaining display keywords NAME, TYPE, VERSION DISPLAY MANIPULATION Page 3-5 and HOUR, WEEK are respectively fixed, or part of other display fields. If no arguments are given, "/COLUMNS" restores the display to its default state: /COLUMNS SIZE DATE MASK If the token "*" is given, the current column-list is used as an argument to simplify appending a new column to the current display. No column may be repeated, however. 3.2.2 DATE Toggle Commands There is one instance in which FLIST permits you to display the same information twice on the screen. The DATE display column is treated specially, and is separate from the BACKUP, CREATED, EXPIRED and REVISED columns. The contents of the DATE column may be changed without issuing a "/COLUMNS" command. By providing a toggle-command "/D", FLIST can reserve a single key on the keypad for sort-by-date without losing generality. FLIST interprets the sort-by-DATE function as "sort by whatever DATE is assigned to." To toggle DATE, type the command "/D" with the (abbreviated) name of the type of date you wish: /DBACKUP (/DB) /DCREATED (/D) /DEXPIRED (/D) /DREVISED (/DR) You may also change the date format. Normally FLIST displays the date in the form dd-mmm-yyyy hh:mm By issuing the command "/DLONG" (/DL), you make FLIST show the day of the week as well: www dd-mmm-yyyy hh:mm Normally FLIST does not show the day of the week, since it costs four extra columns of the display for each date-field. To restore the date to the shorter form, type "/DSHORT" (/DS). 3.2.3 Display Column Rotation Under VMS version 4, file names may be quite long (up to 39 characters in each DISPLAY MANIPULATION Page 3-6 of the NAME and TYPE fields). FLIST automatically reserves enough space on the screen that the NAME, TYPE and VERSION columns line up properly. However, this may leave little room on an 80-column terminal for auxiliary information. In particular, the protection-edit will not run unless the entire protection mask is visible. (The PROTECT command can still be issued, but the cursor cannot move about.) To make FLIST somewhat more agile (and to avoid retyping "/COLUMNS" simply to juggle existing columns), FLIST provides column-rotation commands "/CLEFT" (/CL) and "/CRIGHT" (/CR). These functions are assigned to the PF4 key. The column rotation commands rotate the column-list left or right. They use no arguments. 3.3 STATUS COMMANDS FLIST provides a set of status commands, analogous to the VMS "SHOW" commands. ?COLUMNS The COLUMNS status command summarizes the current display format, by showing the keywords which describe it. Its primary use is to show which date-columns correspond to the various file dates (BACKUP, CREATED, EXPIRED, REVISED). ?DATE The DATE status command shows the current time and date. ?HELP The HELP status command is one of several ways you may invoke FLIST's help-display. ?LEVEL The LEVEL status command shows you the current display level (i.e., how many times you have told FLIST to enter a new display-list). If you wish to quit one or more levels of FLIST, but do not wish to exit it entirely, this command can tell you how deep you actually are. ?SIZE The SIZE status command displays the total number of blocks both used (size) and allocated by the files in the current display level. This is analogous to the "/TOTAL" option of DIRECTORY. ?TIMES FLIST keeps track of the amount of time you have spent in this process, both in elapsed time and CPU time. Use this command to interrogate the timer. ?VERSION The VERSION status command displays the version and date of the copy of FLIST which you are running. DISPLAY MANIPULATION Page 3-7 3.4 OTHER DISPLAY COMMANDS 3.4.1 Refresh-Hold Occasionally you will attempt to perform an operation with FLIST which does not succeed, and it will not be clear why, because FLIST gets rid of the message before you can read it. This will happen in operations which FLIST spawns, waits for a response, and gets an ambiguous return status from VMS. To prevent FLIST from eradicating VMS's message, use the "/HOLD" (/HOL) command. With /HOLD, FLIST waits after spawned commands (even editor calls) for you to hit RETURN. To clear this mode (it is really only useful when you are not successfully issuing commands), use "/NOHOLD" (/NOH). 3.4.2 Screen Refresh Even the best terminal driver occasionally makes a mess of your screen. Or the system operator persists in sending you messages. Unsolicited messages make FLIST's display difficult to read. To restore your screen to what it should be, type CTRL/W. 3.4.3 Screen Dump Figure 1-1 was generated via a screen-dump. FLIST (and the BROWSE program) provide a screen-dump command which may be invoked at any point where FLIST (or BROWSE) is accepting input. (The VMS editor does not presently support this feature). When you type CTRL/K, the screen driver makes a copy of the current screen, and writes it to a file: SYS$LOGIN:SNAPSHOT.CRT When you exit from FLIST, this file is closed and you may print it. Highlighting is represented in the snapshot-file by underlining. The time and date of the snapshot are written to the file as well. Each time you invoke the screen dump, FLIST informs you of how many times you have done so. 3.4.4 Reset Timer FLIST keeps track of the amount of time (both elapsed and CPU) which you have used in running (current process only). To reset the timer, use the "/TIMES" (/TI) command. To display the elapsed time, use the status command "?TIMES". CHAPTER 4 INVOKING FLIST To run FLIST, you use the command FLIST. The FLIST command line consists of the FLIST command, file specifications and optional qualifiers. Do not confuse the FLIST command-line qualifiers with the display commands (which also begin with "/"). 4.1 ALTERING THE INITIAL DISPLAY FORMAT The simplest of FLIST's qualifiers modifies the initial display, by selecting a "/D" display command: /DBACKUP The /DBACKUP qualifier directs FLIST to initially display the file's backup dates (i.e., "/DBACKUP") rather than the creation date. /DREVISED The /DREVISED qualifier directs FLIST to initially display the revision (last modification) dates for each file. This is equivalent to a "/DREVISED" display command. The /DBACKUP and /DREVISED qualifiers may be overridden after entry to FLIST. 4.2 RESTRICTING THE DISPLAY LIST FLIST supports two options which reduce the number of files in the display-list at any point: /NOALL Normally, FLIST runs with /ALL set. This directs FLIST to create an entry in the display-list for each file name which satisfies the file specifications, even if the user has access only to the file names. If /NOALL is set, on the other hand, FLIST will display only those files to which the user has privileged access. This makes the other files invisible; FLIST simply never shows them to the user. /NOVERSIONS The /VERSIONS qualifier (normally active) causes FLIST to show all INVOKING FLIST Page 4-2 versions of each file. If /NOVERSIONS is selected, FLIST will display only the highest version of each file. There are several implications of this function: o The default file specification is restricted from "*.*;*" to "*.*;", so that file scanning is more rapid. o Whenever FLIST modifies a file, it must determine if the result supersedes an item in the display-list. Only the highest version of any file is shown in the display. o Renaming a file so that it is superseded by another file in the display list causes it to vanish from the display. The /VERSIONS mode of operation can be used to advantage when the user wishes to view a set of files without purging them. The PURGE operation will function, but explicit access to lower versions will be denied. The /NOALL and /NOVERSIONS qualifiers may not be overridden. They are set only on entry to FLIST. /NOALL and /NOVERSION are used to reduce the clutter of a large directory display. 4.3 REDUCED-CAPABILITY OPERATION The remaining qualifiers of FLIST act to reduce its display capabilities. This can be useful if the user is to run in a restricted mode, acting only on a subset of the directory attributes. /FAST The /FAST qualifier causes FLIST to display only the file names (including their types, versions and path). Since FLIST need not open the file headers for this mode of operation, it is much faster. FLIST verifies protection in this mode only when the user requires access. The only useful operations are browsing, editing, and sorting by the name components (NAME, TYPE, VERSION and PATH). The /FAST option is equivalent to /NODATE/NOOWNER/NOPROTECTION/NOSIZE /NODATE The /NODATE qualifier causes FLIST to omit the various file dates (CREATED, BACKUP, REVISED) from the displayable set of directory attributes. /NOOWNER The /NOOWNER qualifier directs FLIST to drop the file owners' UID from the displayable attributes. /NOPROTECTION The /NOPROTECTION qualifier directs FLIST to drop the file protection from the displayable attributes. INVOKING FLIST Page 4-3 /NOSIZE The /NOSIZE qualifier directs FLIST to drop the file size (and allocation) from the displayable attributes. None of these restriction-options may be reset after entry to FLIST. CHAPTER 5 VT100/VT52 KEYPAD Like EDT, FLIST supports both the VT100 and VT52 keypads. The VT52 keypad is a subset of the VT100 keypad; it doesn't have PF4, "-" or ",". Unlike EDT, which assigns different functions on the two keypads, FLIST assigns the same function to keys having the same marking. +-------+-------+-------+-------+ | | | | | | PF1 | PF2 | PF3 | UP | | | | | | +-------+-------+-------+-------+ | | | | | | "7" | "6" | "8" | DOWN | | | | | | +-------+-------+-------+-------+ | | | | | | "4" | "5" | "6" | RIGHT | | | | | | +-------+-------+-------+-------+ | | | | | | "1" | "2" | "3" | LEFT | | | | | | +-------+-------+-------+-------+ | | | | | "0" | "." | ENTER | | | | | +-------+-------+-------+-------+ Figure 1 Model VT52 Keypad Like EDT, FLIST uses PF1 as a "GOLD key" (an escape-shift function). FLIST provides four sorting commands on the keypad: NAME, TYPE, DATE and SIZE. The GOLD key selects a reverse-sort for each of these. The forward and backward operations work as in EDT; they set a direction flag (used in the "scroll" function). In Figure 2, the uppercase keywords are FLIST commands; the lowercase are functions. VT100/VT52 KEYPAD Page 5-2 +-------+-------+-------+-------+ | | | NEXT | | | gold | HELP | | up | | | | FIND | | +-------+-------+-------+-------+ | EDIT | scroll| | | | | | BROWSE| down | | VIEW | | | | +-------+-------+-------+-------+ |forward|backwrd| ?TIME | | | | | | right | | /END | /TOP | /TIME | | +-------+-------+-------+-------+ |/STYPE |/SDATE |/SSIZE | | | | | | left | |/RTYPE |/RTYPE |/RSIZE | | +-------+-------+-------+-------+ | /SNAME |/MARK | | | | | return| | /RNAME |/NOMARK| | +-------+-------+-------+-------+ Figure 2 VT52 Keypad Assignments +-------+-------+-------+-------+ +-------+-------+-------+-------+ | | | | | | | | | | | UP | DOWN | LEFT | RIGHT | | PF1 | PF2 | PF3 | PF4 | | | | | | | | | | | +-------+-------+-------+-------+ +-------+-------+-------+-------+ | | | | | | "7" | "8" | "9" | "-" | | | | | | +-------+-------+-------+-------+ | | | | | | "4" | "5" | "6" | "," | | | | | | +-------+-------+-------+-------+ | | | | | | "1" | "2" | "3" | | | | | | | +-------+-------+-------+ ENTER | | | | | | "0" | "." | | | | | | +-------+-------+-------+-------+ Figure 3 Model VT100 Keypad The extra keys on the VT100 keypad are used for functions which can be performed in other ways, but which are useful on the keypad: o The /CLEFT and /CRIGHT operations rotate the column-list. VT100/VT52 KEYPAD Page 5-3 o The "recall" function retrieves the previous command. This function may be also achieved by a normal "-" key (to enter command-edit mode), or by an up-arrow key (while in command-edit). +-------+-------+-------+-------+ +-------+-------+-------+-------+ | | | | | | | | NEXT |/CLEFT | | up | down | left | right | | gold | HELP | | | | | | | | | | | FIND |/CRIGHT| +-------+-------+-------+-------+ +-------+-------+-------+-------+ | EDIT |scroll | | | | | | BROWSE|recall | | VIEW | | | | +-------+-------+-------+-------+ |forward|backwrd| ?TIME | | | | | | | | /END | /TOP | /TIME | | +-------+-------+-------+-------+ |/STYPE |/SDATE |/SSIZE | | | | | | | |/RTYPE |/RDATE |/RSIZE | | +-------+-------+-------+return + | /SNAME |/MARK | | | | | | | /RNAME |/NOMARK| | +-------+-------+-------+-------+ Figure 4 VT100 Keypad Assignments APPENDIX A IMPLEMENTATION A.1 GOALS The design goal for FLIST is to implement a full-screen interface to VMS which never hinders, but always aids the user. FLIST's design is influenced by three related programs: o EDT, the default VMS text editor is easy to learn and use because its most useful operations are provided on the keypad. The FLIST's keypad is modeled after EDT's so that an EDT user may easily use FLIST. FLIST's keypad operations fall into three categories: - Directory sorting and other display modification - Status (?TIME), inspection (BROWSE, VIEW), editing - Searching and scrolling The EDT design model uses the keypad for the operations which are both most frequently used, and which require the least auxiliary (argument) information. o FLIST (a directory editor running on IBM VM/CMS) represents the ultimate in performance. Unlike VMS and Unix, on CMS disk directories reside in virtual memory. By paying an initial "access" overhead, each user possesses a copy of each disk directory which can be rapidly interrogated and modified. FLIST runs much faster than any similar program could on VMS or Unix for this reason. o DIRED (a simple directory editor on Unix) shows that a directory editor can run on medium-sized systems. FLIST is not a copy of either FLIST or DIRED. It is implemented in a more difficult environment than either, because of complications imposed by VMS file structures: o FLIST runs (as noted above) in an environment which provides ready access to the directory. Each and every filename is composed of three tokens (name, type and disk). Screen management is performed by a fully integrated display manager. IMPLEMENTATION Page A-2 o DIRED runs on a system which is superficially similar to VMS. Filenames are hierarchical. Very crude display management is done, since this is done by each program. A.2 TRADEOFFS VMS is more complex than Unix because its file structure is not as simple to parse. On Unix there is no syntactic difference between filenames and directory names. This is not the case on VMS. Wildcard expansion must be done via the program, rather than automatically by the shell. While RMS routines are available for processing wildcard lists, a list of file specifications must be additionally processed by CLI routines (or their equivalent). Version numbers are especially troublesome. Neither Unix nor CMS uses them; each filename is unique. Version numbers complicate FLIST. For example, a user may wish to delete the highest version of a file which appears with more than one version. FLIST must do the deletion immediately, else in succeeding operations the user may edit the "highest" remaining version (resulting in a version conflict). Thus FLIST is a what-you-see-is-what-you-get editor. A.2.1 Terminal Control Screen management is done within FLIST, using the low-level screen routines (erase, write, index) provided by VMS. Presently, no screen package is provided on VMS which can be used to adequately represent a dynamic display such as FLIST's. To provide compatibility with both VT52 and VT100, a single display window is used (VT52 doesn't support scrolling margins). A.2.2 Running DCL Commands FLIST performs most of the essential file-management commands internally. The remainder (COPY, EDIT) are performed by a process spawned for each command. While this is simple, it is slow, particularly file-copying: o FLIST parses the command, using RMS to parse the file specifications. RMS must do I/O to support its parse. o FLIST verifies that the output file is writable, requiring more I/O, and determines its name. o After the spawned command is completed, FLIST searches for the resulting file to append its entry to the display list. In short, FLIST both preprocesses and postprocesses spawned commands to determine their effect. To avoid this completely, one would have to embed the code to perform all VMS commands within FLIST. This is neither desirable nor feasible. IMPLEMENTATION Page A-3 A.2.3 Interface To CLI And Error Reporting FLIST performs its own command parsing to circumvent the VMS error-message facility, as well as to provide a good base for the command pre/post-processing. The problem with the VMS error facility is that it does not permit programs to capture the message-text. Because FLIST must display a large variety of command syntax and usage errors in a relatively controlled fashion, it does the entire job itself. APPENDIX B COMMAND SUMMARY FLIST - Directory Editor FLIST (directory management system/file-list) permits the user to sort directories, examine files, delete rename or alter the protection code on files, all via a dynamic display. Format: FLIST [*.*;*] Options: /AFTER /AFTER=time Same as /SINCE. Selects only those files that are dated after the specified time. You must specify an absolute time. See Section 2.5 in the VAX/VMS DCL Dictionary (or access the HELP topic SPECIFY) for complete information on specifying time values. You can also use the keywords TODAY, TOMORROW, and YESTERDAY. /ALL (D) Read directory entries for all filenames, even if insufficient privilege. /BACKUP Selects files according to the dates of their most recent backup. This qualifier is relevant only when used with the /BEFORE or /SINCE qualifier. Use of the /BACKUP qualifier is incompatible with /CREATED, /EXPIRED, and /MODIFIED. /CREATED is the default. /BACKUP implicitly sets /DBACKUP. /BEFORE /BEFORE=time Selects only those files that are dated before the specified time. COMMAND SUMMARY Page B-2 You must specify an absolute time. See Section 2.5 in the VAX/VMS DCL Dictionary (or access the HELP topic SPECIFY) for complete information on specifying time values. You can also use the keywords TODAY, TOMORROW, and YESTERDAY. /COMMAND Read commands from the specified file (default FLIST.CMD in your login directory). On end-of-file, resume interactively. /CREATED Selects files based on their date of creation. This qualifier is relevant only when used with the /BEFORE or /SINCE qualifier. Use of the /CREATED qualifier is incompatible with /BACKUP, /EXPIRED, and /MODIFIED. /CREATED is the default. /DBACKUP Show backup dates instead of creation dates /DREVISED Show file revision dates instead of creation dates /FAST Suppress all fields other than the filename (*3 faster) /LOG Record commands, informational- and error- messages in a log-file (default FLIST.LOG in your login directory). /MODIFIED Selects files according to the dates on which they were last modified. This qualifier is relevant only when used with the /BEFORE or /SINCE qualifier. Use of the /MODIFIED qualifier is incompatible with /BACKUP, /CREATED, and /EXPIRED. /CREATED is the default. /MODIFIED implicitly sets /DREVISED /NOALL Suppress filename if no privilege for other data /NODATE Suppress creation-date+time /NOFAST Open each file to obtain auxiliary information (e.g., date, size). /NOOWNER Suppress display of owner code /NOPROTECTION Suppress display of protection mask /NOSIZE Suppress allocation (size) data /NOVERSIONS Show only highest version of each file /SINCE /SINCE=time Selects only those files that are dated after the specified time. You must specify an absolute time. See Section 2.5 in the VAX/VMS DCL Dictionary (or access the HELP topic SPECIFY) for complete information on specifying time values. You COMMAND SUMMARY Page B-3 can also use the keywords TODAY, TOMORROW, and YESTERDAY. Commands: FLIST's commands are listed below (capital letters indicate the allowable abbreviation). Main Alternate Description ------------------------------------------------------------------------- Help ?help Show this helpfile. Quit CTRL/Z Quit the current directory level. A numeric argument causes FLIST to quit that many times SHell Spawn DECShell process, return to FLIST on LOGOFF SPawn Spawn new process, return to FLIST on LOGOFF ------------------------------------------------------------------------- (The following use arguments; most imply the current entry) ------------------------------------------------------------------------- APpend Append the current file to the argument COpy Copy the current file to the argument CReate Create the specified file or directory DELete Delete the current file Edit Edit (if file), else enter new directory level. Find Search for the filename specified as argument Inspect Inspect files, showing source-format. Browse Run BROWSE to display the current file. Next CTRL/N Search for next occurrence of filename. NFind Search for entry not matching pattern. PRint Enqueue the file to be printed PROtect CTRL/P Enter protection-code edit PURge Delete lower versions of the current file REName Rename the current file (requires arguments) Submit Submit the current file as a BATCH job. View EDIT/READONLY ------------------------------------------------------------------------- Direction: /FORWARD and /BACKWARD set the current-direction flag, used by /PAGE to determine the direction of scrolling. Each of these commands accepts a single argument: number of lines. If no argument is given, the amount of scrolling is one screen. Display: The only fixed-fields in FLIST's display format are the filename, filetype and version. The pathname for the current-file is automatically displayed in the summary line. The "/d"-commands alter the DATE-field to alternate formats to permit different date-sorting. The "/columns" COMMAND SUMMARY Page B-4 command permits the user to set the display to any combination of fields for which FLIST has read the data: ------------------------------------------------------------------------- /Dcreated Toggle date-display to CREATED /DBackup Toggle date-display to BACKUP /DRevised Toggle date-display to REVISED /DShort Set date to short-format /DLong Show date in long (day-of-week) format ------------------------------------------------------------------------- /Columns (see keyword list) /CLeft Rotates list to the left /CRight Rotates list to the right /CWIDTH Set name.type column width /TImes Display, reset elapsed, actual CPU times ------------------------------------------------------------------------- Keywords: Column keywords include: ALLOC, BACKUP, CREATED, DATE, EXPIRED, FORMAT, ID, LENGTH, MASK, OWNER, PATH, REVISED, SIZE, USER and XAB (record attributes). For example, the standard display is: /columns size date mask Only the first character of each keyword need be given. If an asterisk "*" is given, the entire prior list is entered. This provides a convenient means to append to the list. Width: FLIST normally sets the displayed width of the filename and filetype to the maximum of any file in the list, so that all names and types will fall into columns. Under VMS 4.x, name- and type-components may be quite long (39 characters each). The resulting display may not fit well on your terminal. You may override the column-width by the /CWIDTH command: /CWIDTH n.t for example /CWIDTH 9.3 If you do not give an argument, FLIST resets the display to its default state; either "n" or "t" may be defaulted. Hierarchy: FLIST permits you to enter up to eight display levels (counting the original invocation). FLIST assumes a new level if you EDIT a directory, if your EDIT command implies a wildcard (e.g., inexplicit version COMMAND SUMMARY Page B-5 number), or if you explicitly edit a directory which is not in the current display list. Column settings are inherited as you enter a new level, and restored as you exit. On entry to a new level, the date-selection options are reset (i.e., "/BEFORE" and "/SINCE"). You may use the date-selection options in your initial EDIT-directory call on a new level. Keypad: The keypad functions provided by FLIST are, where possible, analogous to the ones of the EDT editor. Those indicated in "{...}" differ from the functions afforded by typing the command directly: {recall} - retrieves the prior command text. The "-" (non-keypad) itself does only a one-level recall. The command history stores up to 30 levels. Once in command-edit, up/down arrows may be used to select a previous command-string. /mark and /nomark - select/deselect a file entry for successive fixed-point sorting. Key (Without GOLD) (With GOLD) ------------------------------------------------------------------------- PF1 {GOLD} {GOLD} PF2 HELP HELP PF3 NEXT FIND PF4 /CLEFT /CRIGHT 0 /SNAME /RNAME 1 /STYPE /RTYPE 2 /SDATE /RDATE 3 /SSIZE /RSIZE 4 /FORWARD 0 /END 5 /BACKWARD 0 /TOP 6 ?TIMES /TIMES 7 EDIT VIEW 8 /PAGE {} 9 BROWSE BROWSE/O:3/M - {recall} {recall} , ?MEMORY {} . /MARK /NOMARK ENTER {return} {return} ------------------------------------------------------------------------- Line-editing: Any non-editing command may be given to FLIST by typing the abbreviation (with printable characters) next to the file. These commands are terminated with an ENTER or RETURN. All printing characters are echoed (and highlighted, if the terminal permits). The input command may be edited: Key (also) Operation COMMAND SUMMARY Page B-6 ------------------------------------------------------------------------- {printing} Insert printing characters at the cursor. {backspace} {keypad-0} Move to the beginning of the input line. CTRL/E {keypad-2} Move to the end of the input line. CTRL/D {left-arrow} Move the cursor left one column CTRL/F {right-arrow} Move the cursor right one column {delete} Delete the character before the cursor point. {line-feed} Delete the "word" before the cursor point ENTER {return} Complete the command, issue it. CTRL/U CTRL/X Abort the command. ------------------------------------------------------------------------- Pathname: As you move your cursor up or down through the display list, FLIST sets the default directory to match that of the current file. The default directory's name is shown in the status line. You need not specify the pathname (device+directory) of files which are in the default directory while performing operations upon them. Furthermore, if your command implicitly affects only files within the display list (e.g., FIND), then if you do not specify a pathname, then FLIST treats it as a wildcard ("*:"). Commands which are not limited to operating upon the current contents of the display list (e.g., EDIT, COPY, RENAME) do not use this implicit-wildcard for the pathname. Protection: Protection edit-mode is entered either by typing PROtect or CTRL/P. If the first (i.e., no arguments), the changes made in the edit will be saved for last-command retrieval. Protection fields are edited using the following commands, aimed at the flag at the current cursor position: Key (also) Operation ------------------------------------------------------------------------- {up-arrow} Enable the flag down-arrow} Disable the flag {left-arrow} CTRL/D Move left {right-arrow} CTRL/F Move right y Y Enable the entire group (for command-copy) n N Disable the entire group , Move to next group ENTER {return} Complete the command, change protection CTRL/U CTRL/X Abort the command ? PF2 Help-display ------------------------------------------------------------------------- COMMAND SUMMARY Page B-7 Refresh: The following commands are used to update the FLIST database/display-list: Main Alternate Description ------------------------------------------------------------------------- Read Re-read directory (or if argument, new entries) Update Re-read directory, forcing database update VErify CTRL/V Scan to remove files other programs deleted ------------------------------------------------------------------------- CTRL/R Re-read/refresh current line CTRL/W Refresh screen-display CTRL/K Dump a copy of screen to SNAPSHOT.CRT ------------------------------------------------------------------------- /HOLd Prompt after all spawned commands (e.g., EDIT) /NOHold No prompt after spawned commands (default) ------------------------------------------------------------------------- Scrolling: Main Alternate Description ------------------------------------------------------------------------- /TOP CTRL/T Move (scrolling) to the top of the list. /END CTRL/E Move (scrolling) to the end of the list. /Forward CTRL/F Scroll forward one screen. /Backward CTRL/B Scroll backward one screen. /Page Scroll one screen (direction: /F or /B) /Home Move to the top of the screen. /Middle Move to the middle of the screen. /Low Move to last file entry on current screen. {backspace} {up-arrow} Move to previous line. {return} {down-arrow} Move to next line (also ENTER) {number} Move to specified index in file list (trailing sign permitted for relative movement). / Scroll to put current line to top of screen. ------------------------------------------------------------------------- Sorting: Name-fields are sorted in increasing order, while numbers (including dates) are sorted in decreasing order. The "/r" sorts reverse this. A single file may be set as a "fixed-point" during the sort (either by the keypad ".", or by another "/" before the sort command, e.g., "//sn"). If fixed-point, then after sorting the cursor is returned to the selected file. Normal Reverse Description ------------------------------------------------------------------------- /SPath /RPath Sort by PATH name, then name, type, version. COMMAND SUMMARY Page B-8 /Sname /Rname Sort by file NAME, then path, etc. /SType /RType Sort by file TYPE, then path, name, etc. /SVersion /RVersion Sort by VERSION ------------------------------------------------------------------------- /SAlloc /RAlloc Sort by ALLOCated size /SBackup /RBackup Sort by BACKUP date /SCreated /RCreated Sort by CREATED date /SDate /RDate Sort by DATE /SExpired /RExpired Sort by EXPIRED date /SFormat /RFormat Sort by FORMAT (of file) /SHour /RHour Sort by HOUR (of current "/D" mode) /SId /RId Sort by file-id /SLength /RLength Sort by record-length /SMask /RMask Sort by protection MASK /SOwner /ROwner Sort by OWNER /SRevised /RRevised Sort by REVISED date /SSize /RSize Sort by SIZE /SUser /RUser Sort by file owner's user name /SWeek /RWeek Sort by day of WEEK /SXab /RXab Sort by record attributes ------------------------------------------------------------------------- /MARk Select the current file as a fixed point. /NOMark Deselect the fix-point file. ------------------------------------------------------------------------- Status: The following commands display status information known to FLIST, which is not easily determinable by other methods: ------------------------------------------------------------------------- ?Columns Shows the display-columns names (cf: "/columns"). ?Date Shows the current date and time. ?Find Shows the current target of NEXT ?help Shows the help-file for FLIST. ?Level Shows the current nesting-level of FLIST (cf: QUIT). ?Memory Shows the amount of dynamic memory allocated by FLIST. ?Read Shows the read-list and current option settings. ?Size Shows the total block-count of files in the list. ?Times Shows elapsed, actual CPU times, amount of I/O. ?Version Shows the version and build-date of FLIST. ------------------------------------------------------------------------- Substitution: The text of a visible command is directed to the current-file entry. In most cases, the order of arguments is unambiguous: DELETE - no arguments, simply delete the current-file RENAME - one argument, the new-file name In some commands, the order must be specified more precisely (e.g., COPY, APPEND). FLIST uses the "/O" and "/" tokens to accomplish this. The COMMAND SUMMARY Page B-9 first occurrence of the "/" token in the argument list causes the current filename to be implicitly placed at that point, and all succeeding text after it. The filename is normally placed at the end of the command. The "/O" prefix, on the other hand, causes the current filename to be omitted from the command string expansion (unless a "/" token is used). Components of the current filename may be copied by the user in substitution performed by FLIST when executing a command. For example, if the file entry is DBC4:[DICKEY]FLIST.EXE;34, /P substitutes the path, "DBC4:[DICKEY]" /N substitutes the name, "FLIST" /T substitutes the type, "EXE" /V substitutes the version, "34" The "." and ";" punctuation must be supplied by the user if a filename is to be constructed by substitution, e.g., "/N./T". Page Index-1 INDEX /AFTER qualifier, B-1 "/O", omit substitution, 1-7, /ALL qualifier, 4-1, B-1 B-9 APPEND, 2-1, B-3 "/P", substitute PATH, 1-8, B-9 "/", substitute after name, 1-7, Backspace key B-8 move to beginning of line, 1-5, "/T", substitute TYPE, 1-8, B-9 B-6 User-defined symbols, 1-9, 2-13 move up, 1-5, B-7 "/V", substitute VERSION, 1-8, /BACKUP qualifier, B-1 B-9 /BACKWARD, scroll backward, 1-4, COPY, 2-1, B-3 B-7 CREATE, 2-2, B-3 /BEFORE qualifier, B-1 /CREATED qualifier, B-2 BROWSE, 2-6, B-3 /CRIGHT, rotate column-list, B-4 Browsing CTRL/B, scroll backward, 1-4, B-7 BROWSE, 2-6, B-3 CTRL/D, move cursor left, 1-6, VIEW, 2-3, B-3 2-9, B-6 CTRL/E /CLEFT, rotate column-list, B-4 move to end of line, 1-6, B-6 Column keywords, 3-1, B-4 scroll to end, 1-4, B-7 ALLOC, 3-1, B-4 CTRL/F BACKUP, 3-1, B-4 move cursor right, 1-6, 2-9, CREATED, 3-1, B-4 B-6 DATE, 3-1, B-4 scroll forward, 1-4, B-7 EXPIRED, 3-2, B-4 CTRL/K, screen dump, 3-7, B-7 FORMAT, 3-2, B-4 CTRL/N, NEXT, 2-5, 2-7, B-3 ID, B-4 CTRL/P, protection edit, 2-10, LENGTH, B-4 B-3, B-6 MASK, 3-2, B-4 CTRL/R, reread line, 2-11, B-7 NAME, 3-2 CTRL/T, scroll to top, 1-4, B-7 OWNER, 3-2, B-4 CTRL/U, abort command, 1-6, 2-9, PATH, 3-2, B-4 B-6 REVISED, 3-2, B-4 CTRL/V, verify, 2-14, B-7 SIZE, 3-2, B-4 CTRL/W, refresh display, 3-7, B-7 TYPE, 3-2 CTRL/X, abort command, 1-6, 2-9, VERSION, 3-2 B-6 XAB, 3-2, B-4 CTRL/Z, quit, 2-11, B-3 Column-list, 1-2, 3-4 /CWIDTH, set column width, B-4 see also Column-rotation /COLUMNS, B-4 Date format, 3-5 Column-rotation, 3-5 /DLONG, 3-5, B-4 /CLEFT, 3-6, B-4 /DSHORT, 3-5, B-4 /CRIGHT, 3-6, B-4 ?DATE, show current date, B-8 Column-width DATE-toggle, 3-1, 3-5 /CWIDTH, B-4 see also Date format /COLUMNS, set column-list, B-4 /DBACKUP, 3-5, 4-1, B-4 ?COLUMNS, show column-list, B-8 /DCREATED, 3-5, B-4 Command history, 1-1, 1-6 /DEXPIRED, 3-5 /COMMAND qualifier, B-2 /DLONG, 3-5, B-4 Command substitution, 1-1, 1-7, /DREVISED, 3-5, 4-1, B-4 B-8 /DSHORT, 3-5, B-4 "/N", substitute NAME, 1-8, B-9 /DBACKUP qualifier, 4-1, B-2 Page Index-2 /DBACKUP, toggle DATE to BACKUP, /DSHORT, set short date format, 4-1, B-4 B-4 /DCREATED, toggle DATE to CREATED, B-4 EDIT, 2-3, B-3 Defaults /END, scroll to end, 1-4, B-7 Current directory, 1-2 ENTER key file specification, 4-2 enter command, 1-6, 2-9, B-5 to Propagation of specifications, B-6 1-9 move down, 1-5, B-7 Read-list (EDIT), 2-3 Error messages, 1-3 DELETE, 2-2, B-3 Examples Delete key, delete a character, Command substitution, 1-8, 2-7, 1-5, B-6 2-10, 2-13 Display columns COPY, 2-1 restricting with qualifiers, DELETE, 2-2 4-2 EDIT, 2-3 Showing status, 3-6 FIND, 2-5 Display commands, 3-4, B-3 PRINT, 2-8 see also DATE-toggle PROTECT, 2-8, 2-10 /COLUMNS, 3-4, B-4 PURGE, 2-10 CTRL/K, screen dump, 3-7 QUIT, 2-11 CTRL/W, refresh display, 3-7 SUBMIT, 2-13 /HOLD, 3-7, B-7 see also SPAWN /FAST qualifier, 4-2, B-2 INSPECT, 2-6, B-3 File management /NOHOLD, 3-7, B-7 APPEND, 2-1, B-3 /TIMES, 3-7, B-4 COPY, 2-1, B-3 see also ?TIMES CREATE, 2-2, B-3 Display hierarchy, B-4 DELETE, 2-2, B-3 Display level, 2-3 EDIT, 2-3, B-3 see also QUIT PRINT, 2-8, B-3 EDIT, VIEW, 2-3 PROTECT, 2-8, B-3 ?LEVEL, 3-6 PURGE, 2-10, B-3 Display list, 1-1, 1-3 RENAME, 2-12, B-3 appending via COPY, 2-1 VIEW, 2-3 appending via EDIT, 2-4 Files appending via READ, 2-12 EDTINI.EDT, 2-4 appending via RENAME, 2-12 SNAPSHOT.CRT compaction, 3-4 see Screen dump deleting files, 1-4, 2-2, 2-11 FIND, 2-5, B-3 EDIT, 2-3 Fixed-point sorting removal via RENAME, 4-2 /MARK, 3-4, B-8 removal via VERIFY, 2-14 /NOMARK, 3-4, B-8 restricting with /NOALL, 4-1 /FORWARD, scroll forward, 1-4, restricting with /NOVERSIONS, B-7 4-1 VERIFY, 2-13, B-7 "?", HELP (immediate in /DLONG, set long date format, B-4 protection edit), B-6 Down-arrow /HELP, show command summary, 2-6 disable protection, 2-9, B-6 ?HELP, show command summary, 2-6, move down, 1-5, B-7 B-3, B-8 recall (newer), 1-7 HELP, show command summary, 2-5, /DREVISED qualifier, 4-1, B-2 B-3 /DREVISED, toggle DATE to REVISED, ?HELP, show search target, B-8 4-1, B-4 Highlighting Page Index-3 command editing, 1-5 move to beginning of line, fixed-point sorting, 3-4 1-5, B-6 protection changes, 2-9 sort by NAME, 5-2 to 5-3, B-5 screen dump, 3-7 Keypad 1, sort by TYPE, 5-2 to /HOME, 1-5, B-7 5-3, B-5 Keypad 2 INSPECT, 2-6, B-3 move to end of line, 1-6, B-6 sort by DATE, 5-2 to 5-3, B-5 Key assignments Keypad 2, sort by DATE, 3-5 Backspace key Keypad 3, sort by SIZE, 5-2 to move to beginning of line, 5-3, B-5 1-5, B-6 Keypad 4 move up, 1-5, B-7 scroll forward, 5-2 to 5-3, CTRL/B, scroll backward, 1-4, B-5 B-7 scroll to end (GOLD), 5-2 to CTRL/D, move cursor left, 1-6, 5-3, B-5 2-9, B-6 Keypad 5 CTRL/E scroll backward, 5-2 to 5-3, move to end of line, 1-6, B-6 B-5 scroll to end, 1-4, B-7 scroll to top (GOLD), 5-2 to CTRL/F 5-3, B-5 move cursor right, 1-6, 2-9, Keypad 6 B-6 display timer, 5-2 to 5-3, scroll forward, 1-4, B-7 B-5 CTRL/K, screen dump, 3-7, B-7 reset timer (GOLD), 5-2 to CTRL/N, NEXT, 2-5, 2-7, B-3 5-3, B-5 CTRL/P, protection edit, 2-10, Keypad 6, display timer, 3-6 B-3, B-6 Keypad 7 CTRL/R, reread line, 2-11, B-7 EDIT, 5-2 to 5-3, B-5 CTRL/T, scroll to top, 1-4, B-7 VIEW (GOLD), 5-2 to 5-3, B-5 CTRL/U, abort command, 1-6, 2-9, Keypad 8, scroll up or down, B-6 5-2 to 5-3, B-5 CTRL/V, verify, 2-14, B-7 Keypad 9, BROWSE, B-5 CTRL/W, refresh display, 3-7, Keypad 9, BROWSE (browse), 5-2 B-7 to 5-3 CTRL/X, abort command, 1-6, 2-9, Left-arrow, move cursor left, B-6 1-6, 2-9, B-6 CTRL/Z, quit, 2-11, B-3 Line-feed key, delete a word, Delete key, delete a character, 1-5, B-6 1-5, B-6 ",", move to next Down-arrow protection-level, 2-9, B-6 disable protection, 2-9, B-6 "N", don't copy protection code, move down, 1-5, B-7 2-9, B-6 recall (newer), 1-7 PF1, {GOLD}, 5-2 to 5-3 ENTER key PF1, GOLD, B-5 enter command, 1-6, 2-9, B-5 PF2, HELP, 5-2 to 5-3, B-5 to to B-6 B-6 move down, 1-5, B-7 PF3 "?", HELP (immediate in FIND (GOLD), 5-2 to 5-3, B-5 protection edit), B-6 NEXT, 2-5, 2-7, 5-2 to 5-3, Keypad "-", recall, 1-6 to 1-7, B-5 5-3, B-5 PF4 Keypad ".", Fixed-point sorting, /CLEFT, 3-6 5-2 to 5-3, B-5 column-rotation, 5-3, B-5 Keypad 0 /CRIGHT (GOLD), 3-6 Page Index-4 "-", recall, 1-6 Line-feed key, delete a word, 1-5, Return key B-6 enter command, 1-6, 2-9, B-5 /LOG qualifier, B-2 to B-6 /LOW, 1-5, B-7 move down, 1-5, B-7 Right-arrow, move cursor right, /MARK, latch fixed-point, B-8 1-6, 2-9, B-6 ?MEMORY, show dynamic memory Up-arrow usage, B-8 enable protection, 2-9, B-6 /MIDDLE, 1-5, B-7 move up, 1-5, B-7 /MODIFIED qualifier, B-2 recall (older), 1-7 ",", move to next "Y", copy protection-level code, protection-level, 2-9, B-6 2-9, B-6 Keypad "-", recall, 1-6 to 1-7, "N", don't copy protection code, 5-3, B-5 2-9, B-6 Keypad ".", Fixed-point sorting, "/N", substitute NAME, 1-8, B-9 5-2 to 5-3, B-5 NEXT, 2-7, B-3 Keypad 0 NFIND, 2-7, B-3 move to beginning of line, 1-5, /NOALL qualifier, 4-1, B-2 B-6 /NODATE qualifier, 4-2, B-2 sort by NAME, 5-2 to 5-3, B-5 /NOMARK, unlatch fixed-point, B-8 Keypad 1, sort by TYPE, 5-2 to /NOOWNER qualifier, 4-2, B-2 5-3, B-5 /NOPROTECTION qualifier, 4-2, B-2 Keypad 2 /NOSIZE qualifier, 4-3, B-2 move to end of line, 1-6, B-6 /NOVERSIONS qualifier, 4-1, B-2 sort by DATE, 5-2 to 5-3, B-5 Number-scrolling, 1-5, B-7 Keypad 3, sort by SIZE, 5-2 to 5-3, B-5 "/O", omit substitution, 1-7, B-9 Keypad 4 Order of arguments scroll forward, 5-2 to 5-3, B-5 see Command substitution scroll to end (GOLD), 5-2 to 5-3, B-5 "/P", substitute PATH, 1-8, B-9 Keypad 5 /PAGE, scroll one screen, B-7 scroll backward, 5-2 to 5-3, Pathname, B-6 B-5 PF1, {GOLD}, 5-2 to 5-3 scroll to top (GOLD), 5-2 to PF1, GOLD, B-5 5-3, B-5 PF2, HELP, 5-2 to 5-3, B-5 to B-6 Keypad 6 PF3 display timer, 5-2 to 5-3, B-5 FIND (GOLD), 5-2 to 5-3, B-5 reset timer (GOLD), 5-2 to 5-3, NEXT, 2-5, 2-7, 5-2 to 5-3, B-5 B-5 PF4 Keypad 7 /CLEFT, 3-6 EDIT, 5-2 to 5-3, B-5 column-rotation, 5-3, B-5 VIEW (GOLD), 5-2 to 5-3, B-5 /CRIGHT (GOLD), 3-6 Keypad 8, scroll up or down, 5-2 PRINT, 2-8, B-3 to 5-3, B-5 Prompting (DELETE), 2-2 Keypad 9, BROWSE, B-5 PROTECT, change protection, 2-8, Keypad 9, BROWSE (browse), 5-2 to B-3, B-6 5-3 Protection edit, 2-8, 3-6, B-6 PURGE, 2-10, B-3 Left-arrow, move cursor left, 1-6, QUIT, 2-11, B-3 2-9, B-6 ?LEVEL, show display level, B-8 /RALLOC, sort by allocation, 3-1, Line editing, 1-5, B-5 B-8 Page Index-5 /RBACKUP, sort by BACKUP date, /SCREATED, sort by CREATED date, 3-1, B-8 3-1, B-8 /RCREATED, sort by CREATED date, Screen dump 3-1, B-8 CTRL/K, 3-7, B-7 /RDATE, sort by DATE, 3-1, B-8 see Files, 3-7 READ, 2-11, B-7 Scrolling commands, 1-4 ?READ, show read-list and options, Backspace key, move up, 1-5, B-8 B-7 Read-list, 1-3 /BACKWARD, scroll backward, 1-4, CTRL/R, reread line, B-7 B-7 READ, 2-11, B-7 CTRL/B, scroll backward, 1-4 UPDATE, B-7 CTRL/E, scroll to end, 1-4 VERIFY, 2-14 CTRL/F, scroll forward, 1-4 Recall CTRL/T, scroll to top, 1-4 see Command history Down-arrow, move down, 1-5, B-7 "-", recall, 1-6 /END, scroll to end, 1-4, B-7 Refresh display, B-7 ENTER key, move down, 1-5, B-7 RENAME, 2-12, B-3 /FORWARD, scroll forward, 1-4, Return key B-7 enter command, 1-6, 2-9, B-5 to /HOME, 1-5, B-7 B-6 /LOW, 1-5, B-7 move down, 1-5, B-7 /MIDDLE, 1-5, B-7 /REXPIRED, sort by EXPIRED date, Number, 1-4 to 1-5, B-7 3-2, B-8 Return key, move down, 1-5, B-7 /RFORMAT, sort by format, 3-2, Slash, B-7 B-8 /TOP, scroll to top, 1-4, B-7 /RHOUR, sort by hour of DATE, 3-2, Up-arrow, move up, 1-5, B-7 B-8 /SDATE, sort by DATE, 3-1, B-8 /RID, sort by file-id, B-8 Searching Right-arrow, move cursor right, CTRL/N, NEXT, B-3 1-6, 2-9, B-6 FIND, 2-5, B-3 /RLENGTH, sort by record-length, NEXT, 2-7, B-3 B-8 NFIND, 2-7, B-3 /RMASK, sort by protection mask, /SEXPIRED, sort by EXPIRED date, 3-2, B-8 3-2, B-8 /RNAME, sort by NAME, 3-2, B-7 /SFORMAT, sort by format, 3-2, /ROWNER, sort by owner, 3-2, B-8 B-8 /RPATH, sort by PATH, 3-2, B-7 SHELL, B-3 /RREVISED, sort by REVISED date, /SHOUR, sort by hour of DATE, 3-2, 3-2, B-8 B-8 /RSIZE, sort by SIZE, 3-2, B-8 /SID, sort by file-id, B-8 /RTYPE, sort by TYPE, 3-2, B-8 /SINCE qualifier, B-2 /RUSER, sort by file owner's user ?SIZE, show blocks in display name, 3-2, B-8 list, B-8 /RVERSION, sort by VERSION, 3-2, Slash-scrolling, B-7 B-8 /SLENGTH, sort by record-length, /RWEEK, sort by DATE's weekday, B-8 3-2, B-8 /SMASK, sort by protection mask, /RXAB, sort by extra attributes, 3-2, B-8 3-2, B-8 /SNAME, sort by NAME, 3-2, B-7 Sorting commands, 3-1, B-7 /SALLOC, sort by allocation, 3-1, /MARK, latch fixed-point, 3-4, B-8 B-8 /SBACKUP, sort by BACKUP date, /NOMARK, unlatch fixed-point, 3-1, B-8 3-4, B-8 Page Index-6 /RALLOC, sort by allocation, /SPATH, sort by PATH, 3-2, B-7 3-1, B-8 /SREVISED, sort by REVISED date, /RBACKUP, sort by BACKUP date, 3-2, B-8 3-1, B-8 /SSIZE, sort by SIZE, 3-2, B-8 /RCREATED, sort by CREATED date, /STYPE, sort by TYPE, 3-2, B-8 3-1, B-8 /SUSER, sort by file owner's /RDATE, sort by DATE, 3-1, B-8 user name, 3-2, B-8 /REXPIRED, sort by EXPIRED date, /SVERSION, sort by VERSION, 3-2, 3-2, B-8 B-8 /RFORMAT, sort by format, 3-2, /SWEEK, sort by DATE's weekday, B-8 3-2, B-8 /RHOUR, sort by hour of DATE, /SXAB, sort by extra attributes, 3-2, B-8 3-2, B-8 /RID, sort by file-id, B-8 /SOWNER, sort by owner, 3-2, B-8 /RLENGTH, sort by record-length, /SPATH, sort by PATH, 3-2, B-7 B-8 SPAWN, 2-12, B-3 /RMASK, sort by protection mask, Spawned subprocesses, 3-7 3-2, B-8 APPEND, 2-1, B-3 /RNAME, sort by NAME, 3-2, B-7 COPY, 2-1, B-3 /ROWNER, sort by owner, 3-2, CREATE, B-3 B-8 EDIT, 2-4, B-3 /RPATH, sort by PATH, 3-2, B-7 PRINT, 2-8, B-3 /RREVISED, sort by REVISED date, SHELL, B-3 3-2, B-8 SPAWN, 2-12, B-3 /RSIZE, sort by SIZE, 3-2, B-8 SUBMIT, 2-13, B-3 /RTYPE, sort by TYPE, 3-2, B-8 VIEW, 2-4, B-3 /RUSER, sort by file owner's /SREVISED, sort by REVISED date, user name, 3-2, B-8 3-2, B-8 /RVERSION, sort by VERSION, 3-2, /SSIZE, sort by SIZE, 3-2, B-8 B-8 Status commands, 3-6, B-8 /RWEEK, sort by DATE's weekday, ?COLUMNS, show column-list, 3-6, 3-2, B-8 B-8 /RXAB, sort by extra attributes, ?DATE, show current date, 3-6, 3-2, B-8 B-8 /SALLOC, sort by allocation, ?FIND, show search-target, B-8 3-1, B-8 ?HELP /SBACKUP, sort by BACKUP date, see also /HELP 3-1, B-8 see also HELP /SCREATED, sort by CREATED date, ?HELP, show command summary, 3-1, B-8 3-6, B-8 /SDATE, sort by DATE, 3-1, B-8 ?LEVEL, show display level, 3-6, /SEXPIRED, sort by EXPIRED date, B-8 3-2, B-8 ?MEMORY, show dynamic memory /SFORMAT, sort by format, 3-2, usage, B-8 B-8 ?READ, show read-list and /SHOUR, sort by hour of DATE, options, B-8 3-2, B-8 ?SIZE, show blocks in display /SID, sort by file-id, B-8 list, 3-6, B-8 /SLENGTH, sort by record-length, ?TIMES B-8 see also /TIMES /SMASK, sort by protection mask, ?TIMES, show timer, 3-6, B-8 3-2, B-8 ?VERSION, show FLIST version, /SNAME, sort by NAME, 3-2, B-7 3-6, B-8 /SOWNER, sort by owner, 3-2, /STYPE, sort by TYPE, 3-2, B-8 B-8 SUBMIT, 2-13, B-3 Page Index-7 "/", substitute after name, 1-7, "/V", substitute VERSION, 1-8, B-8 B-9 /SUSER, sort by file owner's user VERIFY, 2-13, B-7 name, 3-2, B-8 ?VERSION, show FLIST version, B-8 /SVERSION, sort by VERSION, 3-2, /VERSIONS qualifier, 4-1 B-8 VIEW, 2-3, B-3 /SWEEK, sort by DATE's weekday, VMS error messages 3-2, B-8 /HOLD, 3-7 /SXAB, sort by extra attributes, VMS messages, 2-8, 2-13 3-2, B-8 Wildcard searches "/T", substitute TYPE, 1-8, B-9 DELETE, 2-3 /TIMES, reset timer, 3-7, B-4 differences from VMS, 2-5 ?TIMES, show timer, 3-6, B-8 FIND, 2-5 /TOP, scroll to top, 1-4, B-7 INSPECT, 2-6 NFIND, 2-7 PURGE, 2-10 Up-arrow VERIFY, 2-14 enable protection, 2-9, B-6 Working directory, B-6 move up, 1-5, B-7 recall (older), 1-7 "Y", copy protection-level code, UPDATE, B-7 2-9, B-6