Changes from release 2.4 to 2.5: Certain instructions (MTPS,MFPS) which were incompatible with some models of PDP11's (04, 05, 10, 15, 20, 35, 40, 44, 45, 60, 70) have been removed. Changes from release 2.5 to 2.6: A bug which caused any FIND given at "RESTORE>" level to always go to "ARK+>" level with no errors has been fixed. FIND now conforms to the manual, and finds the specified save-set from "RESTORE>" level as well as from "ARK>" and "ARK+>" levels. The TYPE response to /QUERY when used with the /SORT and /HSORT options to the DIRECTORY and SDIRECTORY commands now works. ARK V2.6 only matches files of type .BAD in DIRECTORY and SDIRECTORY commands, or in file lists that contain no wild specifiers. Note that this means that in the command "DEL *.BAK,XXX.BAD", XXX.BAD will not be found because, even though it was named explicitly, the file list containing XXX.BAD also contains the wild specifier "*". Changes from release 2.6 to 2.7: A bug which caused failing VERIFY's to trap to 4 just before returning to RESTORE> level has been fixed. A bug which caused empty file lines in DIRECTORY/FULL or /FREE not to be columnated properly has been fixed. A bug which caused ARK to crash if asked to do a DATE or TDIRECTORY command on a system that didn't have the date set has been fixed. ARK will now print a warning message when it comes up if the system date isn't set, and will give the error "? Illegal date" if any date is specified that depends on today's date. Also, using /INCREMENTAL on a tape that was last written on a system that didn't have the system date set is now an error. The TDIRECTORY command is now valid at all levels, and accepts the /OUTPUT option. The file created by SDIRECTORY/OUTPUT now has banners in it, the files created by RESTORE/OUTPUT, VERIFY/OUTPUT, and FIND/OUTPUT now have an ending banner as well as a beginning banner, and the format of all the banners has been modified slightly. Changes from release 2.7 to 2.8: A bug in the VERIFY command which caused it to fail on zero block files has been fixed. A table of 8 bytes has been added to ARK's .SAV image at location 1130 for the purpose of identifying deficiencies in various tape drives. The table is in the order specified by the list of tape device ID bytes at location 1060. Each of the eight bits in each table location identify a specific ability of tape drives normally required by ARK but not present in the drive controlled by the device whose ID byte is in the coresponding location of the tape device ID table. The new table is not yet part of ARKFIG so the only way to change it at present is with PATCH or SIPP. The only bit currently in use is bit 2 (value 4), and if set, it indicates to ARK that the drive is unable to go off-line when given the rewind and offline command. Changes from release 2.8 to 2.9: -------------------------------- Two bugs relating to restoring files split across volume boundaries have been fixed. The first could cause an exit with "?MON-F-Trap to 4" after the second volume had been loaded; the second would caused ARK to skip past all the data on the second tape and then ask for then next volume, even if there wasn't any such volume in the set. The second bug only happened if the file was split at a disk address in the saved device greater than 32767. A feature has been added to allow TSX-Plus users to interrupt long TYPE, DIRECTORY, and FIND operations without exiting ARK. Typing ^K while a command is in progress causes ARK to skip any more files in the directory it is currently searching, and to skip any devices it hasn't seen yet. Note that this doesn't actually interrupt a command; it just tells ARK to fail to find any more files to match whatever command was in progress, allowing the command to finish sooner. Thus, any file or block counts, diagnostic messages, etc., that would result from the command will only reflect the devices and files that had been scanned up to the time the user typed the ^K. Location 1126 in the save image contains the character to be used as the interrupt character. We recommend against printing characters, , ^C, ^D, ^H=, ^I=, ^J=, ^L=, ^M=, ^O, ^Q, ^R, ^S, ^U, ^W, ^Z, and ^[=. A new command has been added to allow TSX-Plus users to have jobs other than the one running ARK to be notified when ARK needs attention. The NOTIFY command tells ARK to notify a specific job, all jobs, or all jobs with the same PPN as the one running ARK, when errors happen, or when ARK needs attention from the user. The NOTIFY command can also be used to send an arbitrary message to those same jobs. A new command has been added to allow ARK to do multi-volume saves on tape drives which can't report physical end-of-tape in a timely fashion. The LIMIT command allows the user to specify the maximum amount of data, in megabytes, that ARK should try to put on any one volume. If a SAVE command attempts to write more data on a volume than the current data limit for a volume, ARK will respond exactly as if physical end-of-tape has been reached and ask for the next volume to initialize. Every time the tape is written to, the current limit value is stored in its directory, and every time an ARK tape is loaded ARK sets the current limit to what was stored on the tape. Thus, the only way to change the data limit on a particular tape is to load the tape, THEN set the limit, THEN store data on the tape. A new command has been added to allow users to attempt to recover data from a tape whose directory has been damaged or has become unreadable. The new RECOVER command writes a new ARK ID mark and directory on a tape which instructs ARK not to use the tape directory on that tape, but to skip down the tape looking for Save-Set headers instead. Most of the commands to read tapes will work on such a tape (though some may be slow), commands to write more data on the tape will be refused, and the TDIR command will say "% Tape has discarded directory". The error message "? Hard error on tape" has been enhanced to display additional information. It now displays the function being performed at the time of the error, the contents of location 52, the error code returned by the handler, and the access mode (non-wait, wait, or completion) used. Changes from release 2.9 to 2.10: --------------------------------- Tape Drive Limitations Three more bits were added to the tape drive limitation table at 1130 to handle tape drives that can't skip back (such as QIC-02 drives), and drives that can't rewrite blocks previously written on the tape (such as TK50's). Also, because some tape drives are very slow, and because drives that can't skip back need to rewind the tape and skip forward to simulate a skip back, a bit was added to the drive limitation table to provide a small amount of extra terminal output during skip operations. The bits currently supported in the tape drive limitation table (shown as octal values) are: 001 Drive can't skip backward 002 Drive can't rewrite previously written tape blocks 004 Drive can't do "rewind and offline" function 200 Provide extra terminal output for slow drive Setting bit 0 (value 1) informs ARK that that drive can't skip backward on the tape, and must rewind and skip forward instead. Because this can take quite a while ARK outputs the message "(rewinding)" when this happens. Setting bit 1 (value 2) saying that a drive can't overwrite blocks on tape means that the drive can't rewrite the tape directory after writing a save-set on the tape. This essentially creates a new type of tape called a "Non-directory" tape, because the tape directory contains no information about what save-sets are on the tape. ARK knows how to scan the tape looking for save-sets, and will remember each save-set it has seen since the tape was mounted. The FIND command still works pretty much as usual, but takes somewhat longer. Multi-volume saves are not yet supported for this type of drive, and the LIMIT command will have no effect. Setting bit 7 (value 200 octal) causes ARK to output brief messages when it needs to skip forward or backward on the tape. These messages always start at the beginning of a line, and print a when the tape arrives at the intended frame. The messages are of the form "+" for single frame skips forward, "-" for single frame skips backward, "nn+" or "nn-" for multi- frame skips forward or backward (where "nn" is the number of frames to skip), and "(rewinding)" if a skip fails, or if bit 0 is set in the tape limitation byte for the drive. The /VERBOSE and /NOVERBOSE options have been added to the TAPE command to override the setting of bit 7 in the tape limitation byte for a drive. TAPE/VERBOSE will cause any drive to output the tape activity messages, whereas TAPE/NOVERBOSE will cause any drive not to output tape activity messages. Changes from release 2.9 to 2.10, continued: -------------------------------------------- Indirect Command Files A feature has been added to allow ARK to read commands from an indirect file invoked while running ARK. If the first non-blank character in a command is '@', the rest of the line is assumed to be an indirect command file invocation of the form "@INDFIL ... ". The default indirect command file specification is DK:ARK.COM. Any field of the file specification may be omitted, and will be replaced with the default value for that field. Inside an indirect command file, a caret (^) followed by a character in the range 'A' through '_' will be replaced by its control character equivalent. A caret followed by a digit will be replaced by the argument whose number matches the digit (or by nothing if there was no such argument), and ^0 is replaced by the entire rest of the line following the indirect command file specification. Arguments are separated by spaces, and parenthesis expansion is not done on the invocation line. Expansion is done on lines only after they have been formed by reading the indirect command file. File Lists Another feature has been added to allow file lists to be specified in the form of a directory file. If the file-list in a DIRECTORY, SDIRECTORY, SAVE, QSAVE, RESTORE, TYPE, STYPE, DELETE, or VERIFY command contains a file specification of the form "[device-name]@DIRFIL" it is assumed to refer to a directory file containing a list of files, separated by device, to operate on. The default directory file specification is "DK:ARK.DIR". Any field may be omitted and will be replaced by the default value for that field. The format of the directory file is just a directory produced by DIR or ARK in single column format (see /COLUMNS for /COL:0). Lines starting with a device name specify the device to search for all subsequent filenames up to the next line starting with a device name. Lines starting with a space or any other non RADIX-50 character are ignored. Thus a file can be excluded from consideration by putting a space in front of its name. If the '@' was preceeded by a device name, only the lists for that device in the directory file will be searched. If the directory file contains no device names, the device that preceeded the '@' will be searched. If no device was specified and the directory file contains no device names, all devices will be searched unless the directory file is in the include list for a delete command, when only DK: will be searched. Changes from release 2.9 to 2.10, continued: -------------------------------------------- ? Hard error on tape There was a bug in the error reporting routine which would sometimes cause it to display incorrect values for the contents of location 52 and for the error code. This has been corrected. RT-11 XM ARK no longer runs as an XM "virtual" job. ARK now runs as a "priviledged" job and performs memory mapping to allocate enough memory for it to operate in. Modifying locations 0, 2 and 44 in ARK.SAV in the manner previously documented for running older versions of ARK under XM will cause version 2.10 to fail. $PAUSE The $PAUSE command (and any error conditions which automatically invoke it) only takes effect if ARK is being run from a command file. If input is coming directly from the user's terminal this command is ignored. New Settable Defaults The maximum size of a temporary file created by ARK is now settable either by using ARKFIG or by patching location 1126 in ARK.SAV. This value is only used when ARK creates the save-set directory file during a CREATE operation. It should be at least several hundred blocks to ensure that ARK never runs out of room in the middle of a SAVE operation merely because it didn't use as much room as it could have when creating the save-set directory file. The default blocksize ARK uses to write tapes (which used to be hardwired to 16Kb) is now settable either by using ARKFIG or by patching location 1140 in ARK.SAV. The value to put there is the same as the number you would type to the BLOCKSIZE command (possibly translated to octal for PATCH or SIPP). The default is set every time ARK does an implicit or explicit TAPE command. ARKFIG ARKFIG has been updated to include the tape limitation table, and to exclude the XM option for ARK version 2.10 and higher. The explanatory text and user interaction have been substantially improved. Where an alterable default consists of a list of items ARKFIG now allows the user to remove or add items to the list (rather than only allowing the user to enter a new list). Changes from release 2.10 to 2.11 --------------------------------- Repeat prompt for new tape every 10 minutes When ARK is waiting for the user to insert a new tape ARK will repeat its request every 10 minutes until the user responds. Bugs fixed on drives with the non-skip-back limitation There was a bug which caused a rewind for each file restored or verified. A modification has been made to avoid a rewind for every saved device. Tested non-skip-back with a QIC-02 style drive (the MTI MS400B, a 120 MB MSV05 compatible subsystem). Changes to SAVE and RESTORE operations with logical disk subsets There used to be a problem with the operation of RESTORE/INIT of logical disk subsets. If the device containing the subset was not saved on tape it would not be restored, and if its directory was uninitialized the attempt to create and initialize the subset would fail. Devices which contained only subsets were prone to this problem because no (ordinary) files would be saved from the device and SAVE would make the "obvious" optimization of failing to record device information for devices which had no files to save. The SAVE command will record on tape the device information for all devices matching the user's specification, whether or not any files were saved from the device. Now a RESTORE/INIT will find the outer device first, initialize it, then create and initialize the subset. Changes from release 2.11 to 2.12 --------------------------------- Change to the operation of the DIRECTORY commamd The DIRECTORY command has been changed to be more like the RT-11 DIR command in that the default device (for file specifications lacking a device) is now "DK:" rather than "*>". Thus, for example, the command "DIR *.BAK" will now only search DK: to find matching files, where it used to search all devices in the system. Changes to SAVE operations with logical disk subsets In version 2.11 the SAVE command recorded on tape the device information for any device matching the file specification list even if no files were found on that device. This tended to take substantially longer, use much more tape, and use more temporary file space for incremental backups than previous versions of ARK. Version 2.12 has been modified as follows: If any file selection options (/INCREMENTAL, /BEFORE, /SINCE, /LARGER, /SMALLER, /DATE, /SIZE) are specified in a SAVE command, ARK will not save device information for empty devices found during the SAVE. The purpose for saving empty devices was to allow a full RESTORE/INIT to work properly; a restore like this is very unlikely from an incremental or other similarly qualified backup. If no file exclusion options are specified in a SAVE command, ARK will save information for devices from which no files were saved only if the device contains logical subsets (from which files might be saved). This will allow a RESTORE/INIT to work properly, since if a logical subset is saved on tape all containing subsets and devices will also previously have been saved. A new /ALL option has been added to the CREATE, SAVE, and QSAVE commands. It causes ARK to record information on tape for any device matching the file specification list whether or not any files were saved from the device, and whether or not the device contained any subset files. This is the same as what version 2.11 did. This would only be necessary for full system backups where proper system restoration may include initializing empty devices such as scratch disks. It is otherwise not necessary or desirable since it can use substantially more tape, temporary file space, and take more time to do. "Read error at block, Continue? " IGNORE response added When ARK encounters a hard error on disk during a SAVE command it reports the block number both relative to the file it's in and absolute on the physical device. Such errors often come in groups, and responding YES to each of them can be quite tedious. The response "IG(NORE)" has been added to YES and NO as a valid response to this query. It tells ARK to ignore subsequent disk errors on that device for the remainder of the SAVE. Changes from release 2.11 to 2.12, continued: --------------------------------------------- Better file reporting for hard disk errors during SAVE ARK will now give the relative block number of a logical subset file for hard disk errors in that subset if a bad block doesn't happen to be in any file in that subset. Bug causing "Hard error or not enough room in temporary file" fixed There was a bug that caused ARK to report a hard error on TMP during all subsequent SAVE operations if a hard disk error was encountered during a SAVE. This has been fixed in V2.12. Bug with UNLOAD command in RESTORE> mode fixed The UNLOAD command used to fail to return to ARK> mode when given in RESTORE> mode. This could cause problems with subsequent TAPE, TDIR, SDIR, and RESTORE commands. This has been fixed in V2.12. Changes from release 2.12 to 2.13 --------------------------------- "Non-directory" tape operation cleaned up Several bugs relating to operation on tape drives that can't overwrite the tape directory (and therefore can't maintain a tape directory) have been fixed, and operation with such tape drives has been made smoother. Also, recognition and treatment of logical and physical end of tape has been enhanced, and operation with several cartridge drives and drives using the MU handler have been tested and verified. Changes from release 2.13 to 2.14 --------------------------------- Bug in /SIZE fixed There was an old but unnoticed bug in the /SIZE option which caused it to perform like the /LARGER option. This has been fixed in V2.14. Bug in FIND after QSAVE or CREATE,SAVE,DONE fixed A bug was introduced in V2.13 causing a FIND command (or any command that does an implicit FIND, like SDIR, RESTORE, or VERIFY) to fail with the message "?Can't find save-set", but a subsequent FIND would succeed. This has been fixed in V2.14. Changes from release 2.14 to 2.15 --------------------------------- Bug in RESTORE, VERIFY, and STYPE fixed A bug was introduced in V2.11 which affects all installations except those using a tape drive which has the "NoSkipBack" limitation (QIC-02 cartridge drives have this limitation, most others do not). The bug caused backward skips after a RESTORE, VERIFY or STYPE to be one tape block short. This offset went unnoticed by ARK until the end of the save set was reached, when it reported "? Hard error on tape" and failed. If the user was after a file that was near the beginning of the save set, then incorrect data would be restored to disk without any error report. This has been fixed in V2.15. Changes from release 2.15 to 2.16 --------------------------------- Bug in KILL at ARK+> prompt fixed There was a bug in the KILL command when issued at ARK+> prompt level which caused subsequent CREATE or QSAVE commands to fail with hard error on tape. This has been fixed. The KILL command is supposed to delete the last save set from the tape and leave the tape ready to accept subsequent CREATE or QSAVE commands which would overwrite the deleted save set. The bug did not cause the loss of any data (other than the deleted save set), but modified the tape so that ARK could no longer find the correct place to write new save sets. The KILL command also had the problem that it didn't automatically do a TAPE command if no tape was mounted when it was given. This has also been fixed. Changes from release 2.16 to 2.17 --------------------------------- New command added to set various minor mode switches A new command SET has been added to set various minor mode switches that we decide to add from time to time. The format of the SET command is one of: SET option ON SET option OFF and SET option which is equivalent to SET option ON. Currently there are only two SET options: SET ABORT, and SET CHECK. See below for their descriptions. New SET option to cause ARK to abort on errors A new SET option ABORT has been added which, when ON tells ARK to exit to the monitor after any future error, and to exit to the monitor rather than waiting for the answer to any future question. The user error byte will contain a 6 if ARK exits after an error or 2 if ARK exits after a question. SET ABORT OFF resets to normal handling for errors and questions. New SET option to check new volumes of multi-volume tape sets A new SET option CHECK has been added which when ON tells ARK to check tape labels of new volumes before initializing them when a save-set overflows onto another tape. This occurs after the message: Mount tape to be INITIALIZEd for volume [n]... whereupon ARK used to simply initialize whatever tape was inserted. SET CHECK ON tells ARK to go ahead and initialize a tape only if it already has the correct name and volume number (set during a previous use of the same set of tapes), or after asking the question "Are you sure?" and getting a positive response. If it gets a negative response, or if there are any errors during the process of initializing the new tape, ARK will unload the tape, ask for another tape to be mounted, and check its name and volume number. This will continue until either a tape with the correct name and volume number is loaded, or the user answers YES to "Are you sure?" and ARK succeeds in initializing the tape. SET CHECK OFF resets to the old handling of new volumes which simply initializes them without checking for an ARK id or tape label. Changes from release 2.17 to 2.18 --------------------------------- TSX-Plus "time" word in directory entries now restored ARK now restores the "time" word of restored directory entries (actually the job and channel word) to what was saved on tape. This is important for programs that depend on file times such as Cheshire MK, an RT-11/TSX-Plus version of the Unix "make" utility for building and maintaining user applications. Bug fixed in over-long device names There was a bug in all directory search commands (DELETE, DIRECTORY, QSAVE, RESTORE, SAVE, SDIRECTORY, STYPE, TYPE, VERIFY) with device names between four and ten characters long. Versions 2.10 through 2.17 when given the command "DIR DL000:" would respond with the question "Initialize? ", and when given the command "DIR DL00:" would fail to find any files, when the device DL0: exists. The problem has been fixed by allowing valid file specifications to have no more than three character device names, six character subset names, six character file names, and three character file types (excluding *'s).