.lm 0 .rm 76 1 ALPHA .br The ALPHA command is used to display in either ASCII or EBCDIC depending on the current SET CHARSET mode. Operation is identical to the ASCII and EBCDIC commands in all other respects. The default mode is ASCII. .bl Format: .bl .lm +3 A(LPHA)[/P(ASTE)] [range] .bl .lm +3 See ASCII or EBCDIC for parameter specification. .br .lm -6 1 ASCII .br The ASCII command is used to display the contents of the current buffer (plus following blocks/records, if specified) in ASCII. Non-printing characters are shown as periods. There are 64 or 96 characters/line. Output is aligned on quadword boundaries. .bl Format: .bl .lm +3 AS(CII)[/P(ASTE)] [range] .bl .lm +3 [range] must begin within the limits of the current buffer. If it overflows beyond the current buffer, subsequent blocks/records are displayed, and the user is positioned at the last block/record read. .bl If [range] is omitted, the current buffer is dumped in its entirety. .bl If the /PASTE qualifier is used, the paste buffer is displayed. In this case, [range] must not overflow the size of the paste buffer. If omitted, the entire paste buffer is displayed. .br .lm -6 1 ADD .br The ADD command is used to add one or more signed numbers (longwords) and display the result in decimal and hex. The numbers can be given in hex, decimal, or octal. Decimal output is normally signed unless the SET#NOSIGN command has been given. .br Format: .bl .lm +3 AD(D) number1[,number2,...,numbern] .lm +12 .p -9;[number] can optionally have a leading + or - sign and can have one of the following formats: .bl .lm -6 nnnnnnnnn - Decimal .bl 0nnnnnnnnnn - Octal .bl Hnnnnnnnn - Hex ("H" must be used regardless of the current radix) .br .lm -9 1 BINARY .br This command is used to display the contents of the current buffer (plus following blocks/records, if specified) in binary format. There are 8 or 12 bytes/line. Output is nonaligned (starts at the first address given). .bl Format: .bl .lm +3 B(INARY)[/P(ASTE)] [range] .bl .lm +3 [range] must begin within the limits of the current buffer. If it overflows beyond the current buffer, subsequent blocks/records are displayed, and the user is positioned at the last block/record read. .bl If [range] is omitted, the current buffer is dumped in its entirety. .bl If the /PASTE qualifier is used, the paste buffer is displayed. In this case, [range] must not overflow the size of the paste buffer. If omitted, the entire paste buffer is displayed. .br .lm -6 1 CHANGE .br The CHANGE command is used to modify the current buffer. This does not alter the file unless the changed buffer is written back to the file (via PUT, WRITE or UPDATE). If the change-string would overflow the buffer, nothing is changed. This command can only be used when writing is enabled. If using record access, the record must also be locked first (see LOCK). .bl .lm +3 C(HANGE) [begin[,change-string]] .lm +11 .p -8;[begin] if numeric, is the first byte to change. An asterisk (*) can be used if the current buffer contains a found target of a previous LOCATE, in which case the target address is used. .p -8;[change-string] can have one of the following formats: .lm +3 .p -8; nnnnn - Unsigned hex string of numbers. These are placed in the buffer in the order given, right-justified to the nearest byte. Any number of leading zeroes and up to 8 significant digits may be used. .p -8,0; +nnnn .p -8; -nnnn - Signed decimal. Can be byte, word, or longword. Context is determined by the size of the number, including leading zeroes. Stored in normal (reversed) format. .p -8,1; "xxx" - Character string. Single or double quotes are permitted. The character set used is specified by SET CHARSET. ASCII is assumed if none is specified. .bl .lm -11 If [change-string] is omitted, the previous change string is used. If both parameters are omitted, the previous string is used at the last found target address within the current buffer. .br .lm -6 1 CREATE .br The CREATE command is used to set up the current buffer for creation of a new record. It can only be used when a file is accessed in record mode and when writing is enabled. The current buffer is dissociated with a record in the file and the record number is replaced with the symbol *NR* in the command prompt, which indicates a new record. When the buffer contents are correct, the PUT command can be used to write the new record to the file. If a file positioning command is given before the PUT, operation reverts to normal and a new record is not created. CREATE can be used with sequential files only if positioned at the end of the file. .bl Formats: .bl .lm +3 CR(EATE) [size] .br CR(EATE)/P(ASTE) [size] .br CR(EATE)/N(ULL) [size] .bl .lm +3 [size] specifies the size of the new record. It must be less than or equal to the maximum record size for the file. If editing an indexed file, [size] must be large enough to contain the primary key and the current key of reference. If not specified, [size] defaults to the size of the previous record. .bl By default, the current buffer remains filled with the contents of the previous record, truncated or zero-filled if [size] is different. If the /PASTE option is specified, the paste buffer contents are used to fill the buffer, and [size] defaults to the paste buffer size. If the /NULL option is specified, the entire buffer is cleared. .br .lm -6 1 CUT .br The CUT command copies all or part of the current buffer into the paste buffer. This is secondary buffer which can be recopied into the current buffer at any time via the PASTE command or compared with it via the DIFFERENCES command. See HELP BUFFERS for more information. .bl Format: .bl .lm +3 CU(T) [range] .bl .lm +3 [range] must be entirely within the current buffer. If only the beginning byte is specified, that address thru the end of the current buffer is copied. If [range] is omitted, the entire contents of the current buffer are copied. .bl Data within the paste buffer always begins at byte 0. The range used with the last CUT command is saved, however, and used as a default for subsequent uses of the data (DIFFERENCES and PASTE). .br .lm -6 1 DIFFERENCES .br This command compares all or part of the paste buffer, beginning at the first byte, with the specified range within the current buffer. If differences are found, the contents of the current buffer are printed (in hex) with the corresponding contents of the paste buffer directly below. 32 or 48 sequential bytes are displayed per line. Matching paste buffer bytes on the second line are displayed as periods. Output is longword-aligned. .bl Format: .bl .lm +3 D(IFFERENCES) [range] .bl .lm +3 [range] must be entirely within the current buffer. If only the beginning byte is specified, the comparison count defaults to the smaller of the paste buffer size or the remaining bytes of the current buffer. .bl If [range] is omitted, the range given with the last CUT command which moved data into the paste buffer is used. .br .lm -6 1 DATE .br The DATE command displays one or more sequential quadwords from the current buffer in system date format. Only date values which exist entirely within the buffer can be displayed. .bl Format: .bl .lm +3 DA(TE)[/P(ASTE)] range .bl .lm +3 The beginning byte of [range] must be specified. If no count or ending byte is given, a single date value is displayed. .bl If the /PASTE qualifier is given, data from the paste buffer is displayed. .br .lm -6 1 DELETE .br The DELETE command deletes the current record. It can only be used when an indexed or relative file is accessed in record mode and when writing is enabled. The record must also be locked prior to using this command. If successful, the user is positioned at the preceding record or top of file after deletion. .bl Format: .bl .lm +3 DE(LETE) .br .lm -3 1 EBCDIC .br The EBCDIC command is used to display the contents of the current buffer (plus following blocks/records, if specified) in EBCDIC. Non-printing characters are shown as periods. There are 64 or 96 characters/line. Output is aligned on quadword boundaries. .bl Format: .bl .lm +3 EB(CDIC)[/P(ASTE)] [range] .bl .lm +3 [range] must begin within the limits of the current buffer. If it overflows beyond the current buffer, subsequent blocks/records are displayed, and the user is positioned at the last block/record read. .bl If [range] is omitted, the current buffer is dumped in its entirety. .bl If the /PASTE qualifier is used, the paste buffer is displayed. In this case, [range] must not overflow the size of the paste buffer. If omitted, the entire paste buffer is displayed. .br .lm -6 1 EOF .br This command is useful when editing most VMS files in block mode. The software EOF block and EOF byte are displayed and the user is positioned at the EOF block. When editing files in record mode or devices, this command operates the same as the LAST command. .bl Format: .bl .lm +3 EO(F) .br .lm -3 1 EXIT .br The EXIT command terminates VFE. .bl Format: .bl .lm +3 E(XIT) .br .lm -3 1 FILE .br This command specifies the name of the next file or device to edit. .bl Format: .bl .lm +3 F(ILE) [name][/qualifier(s)] .bl .lm -3 The name can be any valid file/device name. If not given on the command line, the name is solicited. If a single asterisk (*) is specified, the previous file or device is re-opened for edit with new qualifiers as desired. If [name] is a device, block access is required. If [name] contains a network specification, record access is required. Either access mode will operate with a local VMS file on disk. .bl When a valid file/device name is supplied, the previous file/device is closed and the new one is opened for edit. If a VMS disk file name is given, the user is positioned at virtual block 1 (or record 1) of the new file and its contents are read into the current buffer. If a disk device is specified, the user is positioned at logical block 0. LOG__IO privilege is required to edit a disk device. If a tape device is specified, the tape is rewound and the user is positioned at the first block of the tape. The tape must be mounted FOREIGN. .br .rm -2 2 /BLOCK .br This qualifier specifies block-mode access, which is the default unless record access was used with the previous file. .br 2 /RECORD .br This qualifier specifies record access. This access mode is valid only for VMS user files which reside on disk. Once specified, record access will be used for all subsequent files until the /BLOCK qualifier is given. .br 2 /KEY=keyid .br This qualifier is used to specify the key of reference when editing an indexed file in record mode. If used, [keyid] is required, with zero indicating the primary key or a higher number indicating a secondary key. If this qualifier is not specified, the key of reference defaults to the primary key. .br 2 /NOREWIND .br This qualifier can be used to specify that the tape being edited should not be rewound. A single read operation is performed at the current tape position and the block number is set to zero. .br 2 /OVERRIDE .br This qualifier is used to override a file interlock when editing a VMS disk file. It cannot be used in conjunction with /WRITE. When using block mode, SYSPRV is required and all interlocks are bypassed. When using record mode, any additional access granted is usually very limited regardless of user privilege. .br 2 /POSITION .br This qualifier is used to pre-specify a tape position. The /NOREWIND qualifier is assumed when /POSITION is given when editing a tape. .bl .lm +3 /POSITION=([file:]block) .bl .lm +3 [file] is optional. If not given, it defaults to one. .bl [block] must be specified. The tape is backspaced one block and a single read is done. In this way, the tape remains positioned at the same location as it was before. When editing a tape that was previously examined with VFE and the position is unchanged, use the same file and block numbers that were last shown for the tape. .bl Parenthesis are used only if both parameters are given. .br .lm -6 2 /WRITE .br This qualifier allows subsequent use of the WRITE command. If not given when the file is opened, the file will be in read-only mode and no changes will be allowed. Only VMS disk files and disk devices which are mounted FOREIGN can be modified with VFE. Tapes and XQP-managed disk devices can only be edited in read-only mode. Use of the /OVERRIDE qualifier is not allowed when /WRITE is specified. .br .rm +2 1 GET .br This command positions the user at a desired block/record. The data from the file is read into the current buffer. See HELP POSITIONING for an abbreviated form of GET. More information is available for either of the two access modes. .br .rm -2 2 block-mode .br For disk files or devices, this command reads one or more blocks (depending on the setting of SET BUFF) into the current buffer, beginning at the block specified, and positions the user at that block. If the block selected is outside the limits of the current file, the user will be left positioned at the same block and the current buffer will remain unaffected. For tape files, the read will always be attempted. Tape movement stops when an end-of-file mark is encountered in either the forward or reverse direction. .bl Format: .bl .lm +3 G(ET) block .bl .lm +3 [block] is specified in decimal numeric. .br .lm -6 2 record-mode .br This command reads the selected record into the current buffer, and positions the user at that record. There are three different ways to obtain the record, depending on the type of file being edited. .bl Formats: .bl .lm +3 G(ET) record .br G(ET)/K(EY) key .br G(ET)/R(FA) num1:num2 .bl .lm +3 The first form of this command sequentially reads the record with the number specified by [record] (unsigned decimal numeric). This is relative to the first record in the file or the most recent keyed or RFA record lookup, with 1 being the first record. .bl The second form of this command is available only for random access files. It reads the first record in the file with the current key of reference greater than or equal to the key specified (or less than or equal to it if editing a file sorted in descending key sequence). [key] can be specified in any of the formats available with the LOCATE command. After a successful keyed lookup, all record numbers become relative to this record, and the user cannot sequentially read those records which precede it without first doing another keyed or RFA lookup, or positioning at top of file (TOP command). .bl The third form reads the record with the RFA (record file address) as specified by the two numbers, both of which are required. When editing a sequential file, the first part if the RFA is the block containing the start of the record and the second part is the offset within the block of the start of the record. For other file organizations, RFA determination is more complex. The RFA of the current record can be displayed by using the SHOW FILE command. After a successful RFA lookup, record positioning operates the same as after a keyed lookup. .br .lm -6 .rm +2 1 HEX .br The HEX command is used to display the contents of the current buffer (plus following blocks/records, if specified) in hexadecimal. There are 32 or 48 bytes/line. Display output is aligned on longword boundaries. Bytes are dumped in the order in which they occur in the file, from left to right. .bl Format: .bl .lm +3 H(EX)[/P(ASTE)] [range] .bl .lm +3 [range] must begin within the limits of the current buffer. If it overflows beyond the current buffer, subsequent blocks/records are displayed, and the user is positioned at the last block/record read. .bl If [range] is omitted, the current buffer is dumped in its entirety. .bl If the /PASTE qualifier is used, the paste buffer is displayed. In this case, [range] must not overflow the size of the paste buffer. If omitted, the entire paste buffer is displayed. .br .lm -6 1 IBYTE .br This command is used to display the contents of the current buffer (plus following blocks/records, if specified) in integer byte format. Values are signed unless the SET NOSIGN command has been given. There are 16 or 24 bytes/line. Output is nonaligned (starts at the first address given). .bl Format: .bl .lm +3 I(BYTE)[/P(ASTE)] [range] .bl .lm +3 [range] must begin within the limits of the current buffer. If it overflows beyond the current buffer, subsequent blocks/records are displayed, and the user is positioned at the last block/record read. .bl If [range] is omitted, the current buffer is dumped in its entirety. .bl If the /PASTE qualifier is used, the paste buffer is displayed. In this case, [range] must not overflow the size of the paste buffer. If omitted, the entire paste buffer is displayed. .br .lm -6 1 IWORD .br This command is used to display the contents of the current buffer (plus following blocks/records, if specified) in integer word format. Values are signed unless the SET NOSIGN command has been given. There are 8 or 16 words/line. Words are displayed in normal (reverse) order - the first byte of each 2-byte word pair is assumed to be least significant. .bl Format: .bl .lm +3 IW(ORD)[/P(ASTE)] [range] .bl .lm +3 [range] must begin within the limits of the current buffer. If it overflows beyond the current buffer, subsequent blocks/records are displayed, and the user is positioned at the last block/record read. Words which span blocks are printed as if they were contained in the first block. Words which span records are ignored. .bl If [range] is omitted, the current buffer is dumped in its entirety. .bl If the /PASTE qualifier is used, the paste buffer is displayed. In this case, [range] must not overflow the size of the paste buffer. If omitted, the entire paste buffer is displayed. .br .lm -6 1 ILONG .br This command is used to display the contents of the current buffer (plus following blocks/records, if specified) in integer longword format. Values are signed unless the SET NOSIGN command has been given. There are 4 or 8 longwords/line. Longwords are displayed in normal (reverse) order - the first byte of each 4-byte longword is assumed to be least significant. .bl Format: .bl .lm +3 IL(ONG)[/P(ASTE)] [range] .bl .lm +3 [range] must begin within the limits of the current buffer. If it overflows beyond the current buffer, subsequent blocks/records are displayed, and the user is positioned at the last block/record read. Longwords which span blocks are printed as if they were contained in the first block. Longwords which span records are ignored. .bl If [range] is omitted, the current buffer is dumped in its entirety. .bl If the /PASTE qualifier is used, the paste buffer is displayed. In this case, [range] must not overflow the size of the paste buffer. If omitted, the entire paste buffer is displayed. .br .lm -6 1 LOCATE .br This command is used to find the next occurrence of a target string or number within the file being edited. .bl .lm +3 L(OCATE) [target] .lm +12 .p -9;[target] is the target string or number. If not specified, the previous target is used. The following formats are allowed: .lm +2 .p -8; nnnnn - Unsigned hex string of numbers. These are searched for in the order given, right-justified to the nearest byte. Any number of leading zeroes and up to 8 significant digits may be used. .p -8,0; +nnnn .p -8; -nnnn - Signed decimal. Can be byte, word, or longword. Context is determined by the size of the number, including leading zeroes. Searched for in normal (l.s.#to m.s.) format. .p -8,1; "xxx" - Character string. Single or double quotes are permitted. The character set used is specified by SET CHARSET. ASCII is the default. String locate operations are case sensitive unless the SET NOCASE command has been given. .br .lm -17 1 LGLOBAL .br This command finds all of the remaining occurrences of the target number or string within the file being edited. .bl Format: .bl .lm +3 LG(LOBAL) [target] .bl .lm +3 [target] is specified exactly as with LOCATE. .bl When an entire disk file or device has been searched, the user is repositioned at the block/record where the search began. When using tape, the position is left at the last block within a logical file. .br .lm -6 1 LAST .br In record access mode, this command positions the user at the last record in the file. In block access mode, the user is positioned at the highest allocated block of the file. Due to minimum extent granularity, this may be higher than the last block currently storing user data. As a result, its contents may be meaningless - this should not be taken as a sign of file corruption. .bl When using tape, the user is positioned at the last block within the current logical file. .bl Format: .bl .lm +3 LA(ST) .br .lm -3 1 LOCK .br This command can only be used when editing in record access mode and when writing is enabled. The record is reread with the record lock option and changes are allowed. This command is required before the CHANGE, SUBSTITUTE, PASTE, SET LENGTH, UPDATE or DELETE commands can be used. The lock is released whenever an UPDATE or DELETE command, or any command that reads the same or a different record, is given. .bl Format: .bl .lm +3 LOCK .br .lm -3 1 MULTI .br This command is used to display the contents of the current buffer (plus following blocks/records, if specified) in hex and character format. The character set used is determined by SET CHARSET (ASCII is the default). Non-printing characters are shown as periods. There are 32 or 48 bytes displayed per line, with the hex values displayed beneath and aligned with the characters. Output is aligned on longword boundaries. .bl Format: .bl .lm +3 M(ULTI)[/P(ASTE)] [range] .bl .lm +3 [range] must begin within the limits of the current buffer. If it overflows beyond the current buffer, subsequent blocks/records are displayed, and the user is positioned at the last block/record read. .bl If [range] is omitted, the current buffer is dumped in its entirety. .bl If the /PASTE qualifier is used, the paste buffer is displayed. In this case, [range] must not overflow the size of the paste buffer. If omitted, the entire paste buffer is displayed. .br .lm -6 1 MOVE .br This command moves a tape in the forward or reverse direction past a specified number of end-of-file marks. .bl Format: .bl .lm +3 MO(VE) [offset] .lm +12 .p -9;[offset] is a decimal numeric with optional + or - sign. If omitted, the number one (1) is assumed, which will position forward to the next end-of-file mark on the tape. Reverse direction is indicated by a negative offset. .br .lm -15 1 NEXT .br This command positions the user to a block/record with a relative offset to the current one. Contents of the requested block/record are read into the current buffer. When using tape, tape movement stops when an end-of-file marker is encountered prior to locating the requested block. .bl Format: .bl .lm +3 N(EXT) [offset] .lm +12 .p -9;[offset] is a decimal numeric with optional + or - sign. If omitted, the number one (1) is assumed, which will position to the block/record immediately following the current one. .bl .lm -15 When editing a disk file or device in block mode, the value of [offset] is usually multiplied by the value determined by SET BUFF. .bl See HELP POSITIONING for abbreviated forms of NEXT. .br 1 PASTE .br The PASTE command writes all or part of the paste buffer to the current buffer. File positioning is not affected, and if a WRITE, PUT or UPDATE command is issued before another command causes a read, the positioned record or block(s) within the file will be overwritten. Judicious use of the CUT and PASTE commands can be used to transfer entire or partial records (record mode) or "chunks" of data (block mode) within a single file or between files. EXTREME CAUTION is advised for users of this command! .bl Format: .bl .lm +3 P(ASTE) [range] .bl .lm +3 Data is transferred serially from the first byte of the paste buffer into the specified area of the current buffer. [range] must be entirely within the current buffer. If a range exceeds the size of the paste buffer, the remainder is zero-filled. If it is smaller, only that many bytes are transferred. .bl If only the beginning byte of [range] is given, the transfer count is taken to be the size of the paste buffer. If [range] is omitted entirely, the range given with the last CUT command is used. .bl The size of the current buffer is never changed by the PASTE command. .br .lm -6 1 PUT .br The PUT command is used to write the new record created by the CREATE command to the file. It can only be used in record mode editing and only after a CREATE. After the new record is written successfully, it is assigned the next highest record number for sequential files or assigned record number 1 for indexed files. In the latter case, records which precede it in the defined sort order of the current key of reference cannot be read sequentially until a keyed or RFA read is done or the TOP command is used to position to the top of the file. .bl Format: .bl .lm +3 PU(T) .br .lm -3 1 RECORD .br The RECORD command is used to display one or more records of a file in character format, as determined by SET CHARSET. ASCII is the default. Nonprinting characters are printed as periods. The file can be either fixed, variable, or VFC formatted. There are two display modes, as determined by SET HEADER. More information is available depending on the access mode of the file being edited. .br .rm -2 2 block-mode .br The RECORD command can be used in block mode only when editing a disk file that is organized sequentially. In this case, VFE will evaluate the file structure and print the records in sequential order. When using this command in block mode with HEADER mode on, the numbers preceding the records in the display are byte offsets within the current block. .bl .lm +3 R(ECORD) [begin][,count] .bl .lm +3 [begin] for fixed length records is the byte offset within the current buffer of the first record to print. For variable/VFC records, it is the address of the record length word for that record. Since all records begin on a word boundary, if [begin] is odd, it will round up. .bl If [begin] is omitted and the user is positioned at the same block where a previous RECORD command was given, the address of the following record is used. Otherwise, if [begin] is omitted, the current buffer is searched for the first likely record start address and that is used. (This process is not 100% accurate, but works well with short records.) .bl [count] is the count of records to be printed. If [count] and/or the record lengths are sufficiently large, processing may continue into blocks following the current buffer. When processing is completed, the user is positioned at the last block read. If not specified, [count] defaults to the previous value used. .br .lm -6 2 record-mode .br The RECORD command can be used with any type of file organization when the file is accessed in record mode. When used with HEADER mode on, the numbers preceding each record in the display are the record numbers within the file. .bl Format: .bl .lm +3 R(ECORD) [begin][,count] .bl .lm +3 [begin] is the first record number to print. If omitted, the current record is printed first, unless it had just been printed by a previous RECORD command, in which case the following record is the first one to print. .bl [count] is the count of records to print. If omitted, it defaults to the previous value used, or one. When processing is completed, the user is positioned at the last record printed. .br .lm -6 .rm +2 1 REWIND .br This command rewinds the tape being edited and positions the user at the first block of the first file. .bl Format: .bl .lm +3 RE(WIND) .br .lm -3 1 SET .br This command is used to set/clear various modes and indicators. .br .rm -2 2 BUFF .br This option determines the size of the current buffer for block mode disk operations. It has no effect when editing tape or record mode disk. .bl Format: .bl .lm +3 SE(T) B(UFF)=count .bl .lm +3 The [count] parameter is a decimal numeric in the range of 1-50 and must be specified. This determines the block count for each read operation. Large buffer sizes can be used to transfer data that crosses block boundaries with CUT and PASTE, and to compare large areas with the DIFFERENCES command. The default value of [count] is one (1), and it is recommended that this value be used for most VFE operations. When a large buffer size is used, addressing is relative to the first block read, and this can be confusing when data is displayed from subsequent blocks which reside in the same buffer. .bl Note that if [count] exceeds the block size of the current buffer, the size will not be expanded until the next read is performed. .bl The setting of this parameter has no effect on the efficiency of LOCATE or LGLOBAL, which always use a 50-block buffer for disk searches. .br .lm -6 2 CASE .br This option determines whether character string search operations (LOCATE, LGLOBAL) are case-sensitive. Case-sensitive searches require less than 50% of the CPU time required by case-insensitive searches. The default mode is case-sensitive. Operation is valid for either supported character set (ASCII or EBCDIC). The setting of this option can also affect the operation of the SUBSTITUTE command. .bl Format: .bl .lm +3 SE(T) [NO]C(ASE) .bl .lm +3 CASE mode is case-sensitive, NOCASE is case-insensitive. .br .lm -6 2 CHARSET .br This option is used to determine the character set used for display, change, and search operations. The default character set is ASCII. .bl Format: .bl .lm +3 SE(T) CH(ARSET)=A(SCII) .br ###############=E(BCDIC) .br .lm -3 2 DISPLAY .br This option is used to enable or disable local printing at the terminal. The standard mode is DISPLAY. If logging is enabled (see SET LOG) and the SET NODISPLAY command has been given, only command solicitation and single-line output (such as error messages) is displayed at the terminal. Other output is written only to the log file. .bl Format: .bl .lm +3 SE(T) [NO]D(ISPLAY) .br .lm -3 2 HEADER .br This option controls buffer contents when editing a VFC file in record mode, and also affects the printed output of the RECORD command. .bl Format: .bl .lm +3 SE(T) [NO]H(EADER) .bl HEADER mode is the default. .br .lm -3 .rm -2 3 buffer-contents .br When HEADER mode is set and a VFC file is being edited in record mode, the VFC contents are included at the beginning of the current buffer. The buffer size is therefore the VFC length plus the record length, and the VFC is displayed and is available for modification. When HEADER mode is disabled (SET NOHEADER) the VFC is not included in the buffer contents, and will be unchanged if the record is modified. HEADER mode must be on when a new record is created (CREATE command). If it is not on when this command is given, it will be turned on. .br 3 RECORD-output .br When HEADER mode is set, each record displayed is preceded by its byte offset (block mode) or record number (record mode). Up to 8 bytes of the VFC field are displayed (in hex) for VFC files. Nonprinting characters are replaced with periods. If editing in block mode, each new block number is shown as the block is read. .bl NOHEADER mode produces output similar to the VMS TYPE command. Addresses, VFCs, and block numbers are suppressed. Nonprinting characters are replaced with periods, except for tabs, which are replaced with the correct number of spaces. .br .rm +2 2 KEY .br This option is used to select the key of reference when editing an indexed file in record mode. .bl Format: .bl .lm +3 SE(T) K(EY)=keyid .bl .lm +3 [keyid] is the desired key of reference with zero being the primary key. If [keyid] is different than the current key of reference, the file is repositioned at the top according to the defined sort order of the new key of reference. .br .lm -6 2 LENGTH .br This option is used to change the size of the current buffer. It can only be used when an indexed file is accessed in record mode and when writing is enabled. If positioned at an existing record within the file, the record must be locked. A subsequent UPDATE will then change the length of the record in the file. .bl Format: .bl .lm +3 SE(T) LE(NGTH)=size .bl .lm +3 [size] is required. It is specified in decimal numeric. It must be less than or equal to the maximum record size for the file, and must be large enough so the current buffer can contain the primary key and the current key of reference. .br .lm -6 2 LOG .br This option is used to enable or disable logging of VFE output to a user file. All output and input is written to the file. The log file is closed when another SET LOG command is given or when VFE terminates. .bl Formats: .bl .lm +3 SE(T) L(OG)[=filename] .br SE(T) NOL(OG) .lm +14 .p -11;[filename] is any legitimate VAX file descriptor. Device and directory are optional. If this parameter is omitted entirely, the file VFE.LOG is created in the current default directory. A new version is created each time the SET LOG command is used. .br .lm -17 2 POSITION .br This option is used to change the indicated position of a tape file. It does not change the physical position of the tape or do any I/O to the tape device. .bl Format: .bl .lm +3 SE(T) P(OSITION)=([file:]block) .lm +10 .p -7;[file] if specified, is a decimal numeric which replaces the current file number. .lm +1 .p -8;[block] is required. It is a decimal numeric, and replaces the current block number. .bl .lm -8 Parenthesis are used only if if both parameters are given. .br .lm -6 2 RADIX .br This option determines the base of all byte addresses given on command lines and shown in display output. The [begin] and [end] fields of all range specifications and the [begin] field of the CHANGE command are affected. Block addresses and the [count] field of ranges are not affected - these are always input and displayed in decimal. The initial radix is DECIMAL. .bl Format: .bl .lm +3 SE(T) R(ADIX)=D(ECIMAL) .br #############=H(EX) .br .lm -3 2 SIGN .br This option is used to enable or disable signed decimal output with the ADD, IBYTE, IWORD, and ILONG commands. The default mode is SET SIGN. .bl Format: .bl .lm +3 SE(T) [NO]S(IGN) .br .lm -3 2 SKIP .br This option can be used to compensate for a bug in VMS which causes incorrect block indication when using tape files. It is known to occur under VMS 4.1 and 4.2 when using the TA78 tape drive. Simply put, when an IO$__SKIPRECORD encounters an EOF mark, the number of blocks skipped before the EOF was found is not returned in the IOSB. This means that if the tape encounters an EOF while skipping in the forward direction and the user backs up over the EOF, the absolute block number is unknown. Note that IO$__SKIPRECORD is only used with block positioning within a single file (GET, NEXT, TOP, LAST, EOF). When using the MOVE command, the setting of SKIP has no effect. .bl Format: .bl .lm +3 SE(T) SK(IP)=option .bl .lm +3 If [option] is NORMAL, VFE uses its standard skip-ahead count of up to 50 blocks when skipping over blocks. When moving back over an EOF, block numbering can be unpredictable if operating on a system and device on which this bug exists. This is the default option. .bl If [option] is FAST, the skip-ahead count is still up to 50 blocks, but movement backwards over an EOF will set the block number to -1 and decrement from there if the bug could have caused erroneous position indication. .bl If [option] is SLOW, all skip-aheads are done one block at a time. This preserves position indication but operates considerably slower than either of the above. .br .lm -6 2 WIDTH .br This option can be used to change the output width of the terminal device. Display output has a wide and a narrow setting, and the size is dependent on the terminal output width. Output to a log file when NODISPLAY is set, and all batch output, is always in wide format. If the width is changed during a VFE session, it is reset to the original size when the session terminates. .bl Format: .bl .lm +3 SE(T) W(IDTH)=size .bl .lm +3 [size] is a decimal numeric and can be either 80 or 132. .br .lm -6 .rm +2 1 SHOW .br The SHOW command is used to display various aspects of the current VFE environment. .br .rm -2 2 ALL .br This displays all of the SHOW options with one command. .bl Format: .bl .lm +3 SH(OW) A(LL) .br .lm -3 2 CHANGE .br Displays the current change-string, and most recently changed file, block and byte address. .bl Format: .bl .lm +3 SH(OW) C(HANGE) .br .lm -3 2 DEVICE .br Displays the name of the file or device being edited, and current block or record number. Same as SHOW FILE. .bl Format: .bl .lm +3 SH(OW) D(EVICE) .br .lm -3 2 FILE .br Displays the name of the file or device being edited, and current block or record number. If editing in record mode, the RFA of the current record is also displayed. .bl Format: .bl .lm +3 SH(OW) F(ILE) .br .lm -3 2 LOCATE .br Displays the current locate target and most recently located file, block, and byte address for the target. .bl Format: .bl .lm +3 SH(OW) L(OCATE) .br .lm -3 2 MODES .br Displays status of the SET modes (BUFF, CASE, CHARSET, DISPLAY, HEADER, LOG, RADIX, SIGN, SKIP, WIDTH). .bl Format: .bl .lm +3 SH(OW) M(ODES) .br .lm -3 2 PASTE .br Displays the size of the paste buffer, and the file, block, and offset from which the data was transferred. .bl Format: .bl .lm +3 SH(OW) P(ASTE) .br .lm -3 .rm +2 1 SUBSTITUTE .br This command is used to replace one character string with another in the current buffer. The same restrictions apply to this command as to CHANGE. .bl Format: .bl .lm +3 S(UBSTITUTE) [d]string1[d]string2[d] .bl .lm +3 [d] is a single character delimiter which must be specified three times in the order shown and may not occur in either string. Any character can be used. .bl [string1] is the target string. The character set is determined by SET CHARSET (ASCII is the default). Case sensitivity is determined by SET CASE. The string must occur entirely in the current buffer in order for the substitution to occur. .bl [string2] is the replacement string. The character set is the same as the first string. Characters in [string2] overlay those in the buffer beginning at the first match of [string1]. Unlike similar commands in other editors, the size of the current buffer will not be changed if the two strings are of unequal length. .bl If the entire parameter sequence is omitted, that from the previous SUBSTITUTE command is used. .br .lm -6 1 TOP .br This command positions the user at the top of the file. When used in block mode, the contents of virtual block 1 are read into the current buffer (logical block zero for disk devices). When editing tape, the tape file is moved in the reverse direction until an end-of-file mark is found, and then the data which follows the EOF mark in the forward direction is read into the current buffer. .bl In record mode, the user is positioned at the top of the file and the first record is read into the current buffer. If editing an indexed file, record selection is based on the lowest (ascending) or highest (descending) value of the current key of reference. .bl Format: .bl .lm +3 T(OP) .br .lm -3 1 UPDATE .br The UPDATE command is used to update the positioned record in the file with the contents of the current buffer. It can only be used in record mode editing and only after the record has been locked. If editing an indexed file and the size of the current buffer has been changed with SET LENGTH, the length of the file record is modified also. .bl Format: .bl .lm +3 U(PDATE) .br .lm -3 1 WRITE .br This command is only operational when editing a disk file or device in block mode, and only if the file has been accessed with the /WRITE qualifier. The current buffer is written to the file block(s) at which the user is positioned. The current buffer will always contain the contents of the positioned block(s) except when the CHANGE, SUBSTITUTE or PASTE commands have been used and no repositioning has occurred. The amount of data written depends on the size of the current buffer, which is usually 512 times the value determined by SET BUFF. See HELP BUFFERS for more information. .bl Format: .bl .lm +3 W(RITE) .br .lm -3 1 access-modes .br There are two major file access modes available to users of VFE. The access mode is determined by the use of the /BLOCK or /RECORD qualifier as documented with the FILE command. Block mode is the initial default. Subsequent uses of the FILE command to change the file in use will assume the current access mode unless the other is specified. Access modes are mutually exclusive; only one can be in operation at one time. It is possible, however, to transfer data through the paste buffer from one mode to the other. .br .rm -3 2 block-mode .br BLOCK mode is used with local disk files or disk/tape devices. Data is transferred from/to the storage device on block boundaries, regardless of format. The XQP-QIO interface is used for the transfers. There is a very limited facility in VFE to interpret sequential files read in block mode (RECORD command) but beyond this there is no attempt made to operate on the data itself. Block mode is most useful when attempting to display or change data which is not easily obtainable through standard VMS utilities. The LOCATE/LGLOBAL commands will operate in either mode, but the search is much faster when done in block mode. .br 2 record-mode .br RECORD mode is used with local or remote disk files. Data is transferred on record boundaries. The RMS interface is used for the transfers. In this mode it is possible to examine data as it would be available to a user program (for example, an uncompressed indexed file record). All three RMS formats (sequential, relative, indexed) are permitted, although most testing and development has been geared towards use with indexed and sequential files. Record mode is most useful for displaying and modifying record-oriented information which is not as easily accessed through standard VMS editors. .br .rm +3 1 buffers .br VFE operates with two variable-length buffers. .bl .lm +3 The CURRENT buffer is filled with the contents of the positioned block(s) or record. The buffer is filled whenever a file is initially opened for edit and whenever a read operation is performed on the current file or device. Commands which always cause a read operation are DELETE, EOF, FILE, GET, LAST, LOCK, MOVE, NEXT, PUT, REWIND and TOP. (This happens even if the same block is selected, as in NEXT 0). Commands which can cause file reads if multiple blocks/records are displayed or searched are ALPHA, ASCII, BINARY, EBCDIC, HEX, IBYTE, IWORD, ILONG, LOCATE, LGLOBAL, MULTI and RECORD. The UPDATE command can cause a read if the field containing the current key of reference is modified. .bl Contents of the current buffer can be modified with the CHANGE, PASTE and SUBSTITUTE commands, and these modifications remain until the next read operation. If a PUT, WRITE or UPDATE is done before the next read, the modifications are written to the file and become permanent. .bl The PASTE buffer is user-controlled. It is filled by using the CUT command. Unlike the current buffer, the paste buffer remains unaltered when a read operation occurs or when a new file is edited. The paste buffer has two primary uses: First, to allow data to be compared with the DIFFERENCES command, and second, to permit data to be transferred within a file or between files. .br .lm -3 1 positioning .br The following sequences are abbreviated formats of the GET and NEXT commands. They are useful for fast block/record positioning. Note that a positioning command will always cause the contents of the positioned block(s) or record to be read into the current buffer. .bl .lm +3 ###### advances one block/record. Same as NEXT 1. .br +######### advances one block/record. Same as NEXT 1. .br -######### backs up one block/record. Same as NEXT -1. .br [number]## positions to the block/rec specified. Same as GET [number]. .br +[number]# advances [number] blocks/records. Same as NEXT [number]. .br -[number]# backs up [number] blocks/records. Same as NEXT -[number]. .br "[key]"#or# performs the same function as GET/KEY. The key is translated .br '[key]'#### to upper case when the abbreviated form is used. .bl .lm +3 In all cases above, [number] represents a decimal numeric, and [key] represents a character string. For numeric or lower case keys, the long form of GET/KEY must be used. .bl .lm -6 See HELP PROMPT for information on position indication. .br 1 prompt .br The user prompt has several different formats. .br .rm -3 2 block-mode-prompt .br When using block mode, the prompt format depends on the type of file or device being edited and on the SET BUFF value. The general format is: .bl .lm +3 [file:]block[(size)]> .bl .lm +3 [file] represents the current logical file number and is always present for tapes, never for disk. When the tape is rewound and the file position is known, the first logical file is numbered 1 and the number is increased each time an EOF mark is crossed. When the tape position is unknown, the file number can be zero or negative. .bl [block] is always present. For disk files, it represents the current VBN (virtual block number), for disk devices, the current LBN. For tape, it represents the logical block number that has been most recently read within the current logical file. When the tape position is known, blocks begin at 1 with zero indicating that an EOF mark has just been crossed but no data has been read. When the tape position is unknown, the block number can go negative. .bl [size] is used to show the size of the current buffer. For disk, this indicator is omitted if the value of SET BUFF is one. In this case, the current buffer contains 512 bytes. For tape, this shows the size of the block just read, and is always present except when the last tape positioning produced no data, as is the case when an EOF mark has been crossed or if the system returns an error status with zero bytes transferred. .br .lm -6 2 record-mode-prompt .br When using record mode, the format of the prompt is as follows: .bl .lm +3 record[* ](size)>### or: .br *NR* (size)> .bl .lm +3 In the first form, [record] is always present and indicates the record number. This is normally relative to the top of the file and represents an absolute record number. Records are numbered sequentially from one. If the asterisk (*) appears in the prompt, this indicates the records are being numbered relative to the last non-sequential read of the file. This is usually caused by a GET/KEY or GET/RFA, but can also be the result of a PUT, or an UPDATE that modified the key of reference. Once relative record numbering has started, there is no way to position to records which precede relative record one except by doing another non-sequential read or going to the top of file (TOP command). .bl The second form of the prompt only occurs after the CREATE command is used. It indicates that the current buffer is not attached to any record in the file and represents a new record which is to be added to the file. This record will only be added to the file if the PUT command is used before the next read operation is performed. .bl In both forms of the prompt, [size] is always present and indicates the size of the current buffer. In the first form, this is the record size, unless the SET LENGTH command has been used after the last read. In the second form, this will be the record size when the new record is written via the PUT command. .br .lm -6 .rm +3 1 range .br Many of the commands use a [range] specification. The format of the range is as follows: .bl .lm +3 [begin][,count] or: .br [begin][:end] .lm +11 .p -8;[begin] specifies the address within the buffer of the first byte to process. It is supplied in unsigned decimal or hex, depend- ing on the setting of SET RADIX. The default is decimal. [begin] must always be within the address range of the cur- rent or paste buffer, whichever is being used in the command. If not specified, [begin] defaults to the first byte (0). .p -8;[count] specifies the count of items to process. This is the byte count for all commands except for DATE, IWORD, and ILONG, where it it the count of date quadwords, words, and longwords, respectively. [count] is always specified in unsigned decimal numeric. Some commands allow [begin+count] to exceed the range of the current buffer. .p -8;[end]## specifies the address of the last byte to process. It can be supplied in unsigned decimal or hex, depending on SET RADIX. Decimal is the default. [count] and [end] cannot be used together on the same command. Some commands allow [end] to exceed the range of the current buffer. .bl .lm -8 If both [count] and [end] are omitted, a single item is processed, except where indicated differently for specific commands. Most com- mands allow [range] to be omitted entirely. See specific command documentation for more information. .br .lm -6 1 signon .br If you have the symbol VFE defined correctly as specified in the release documentation, following is the full format of the signon sequence: .bl .lm +3 $ VFE[/set-options...] [filename][/file-qualifiers...] .bl .lm +3 [set-options] are optional, and can be any one or more of the valid SET options (except LENGTH) less the SET command itself. .bl [filename] is the name of the file or device to edit. If not given on the command line, it will be solicited. .bl [file-qualifiers] are optional, and can be one or more of the options described with the FILE command. .bl .lm -6 For example: .bl .lm +3 $ VFE/NOCASE/RADIX=HEX/LOG=FILEX.LOG FILEX.DAT/WRITE .br .lm -3