TPC - Fast Tape Copy ==================== Users' Guide ============ This program will copy a complete magtape to a Files-11 disk and store it there in a special image mode, from which it can create one or more copies of the tape (must faster than FLX ever could). BIGTPC is able to do this, but also will handle any block size on tape up to 4200. bytes (big enough for BRU tapes). By going from 4 to 3 buffers for tape and smaller numbers of disk blocks per read/write still larger tape block sizes can be handled. Also, several additional switches are supported. If it is desired to support larger BIGTPC block sizes, it is possible to reduce the number of BIGTPC buffers (and the buffer headers) and to reduce the disk buffer count of blocks. This works well with the number of disk blocks reduced to 8., the number of BIGTPC buffers reduced from 4 to 3, and the size increased to 11000. bytes, supporting image copies of such formats as VMS BACKUP or UNIX TAR tapes. Note however that where these counts are changed, BIGTPC may not terminate correctly when writing a container file from another version. You may have to abort and write EOFs with another utility. If you have a tape and recreate container files, there will be no trouble. The command format is:- TPC Output-filespec=Input-filespec where one of the 'filespecs' must be a magtape device (e.g. MT:) and the other the name of an image file on disk. Legal switches are:- /BL:nnnn - Specifies an initial allocation specification for the image file if a disk is the output device. Defaults to 200. /SA:nnnn - Specifies a secondary allocation specification for the image file if a disk is the output device. Defaults to 50. /CO - Specifies that the disk file is to be contiguous /HD - Indicates High Density (1600 BPI) tape is to be written. (For TE16, tape is read at the proper density automagically.) This permits a container file from one density to be written out in another. /NR - Specifies NO positioning of the tape prior to the start of copying. This will allow TPC to merge several backup collections on a single output tape if used with care. After the end of a copy, TPC will write 4 EOF records and backspace so that it will be positioned after the first EOF on tape. This will ensure that a second backup done with the /NR switch will correctly copy onto a FLX tape in readable fashion. /SC:nnnn - Sets tape characteristics to nnnn(octal), to allow use of tapes with even parity, 556BPI, etc. If the /HD switch is used, the high density bit is ORed in with the nnnn value specified in the /SC switch. /AN - Specifies possible ANSI format. If TPC sees this switch it will look for ANSI label records and permit copies even where the tape has null files and hence double EOF before the real end of tape. Only 80 byte records are examined and EOFs are treated specially only between HDR2 and EOF2 (or EOV). The headers are assumed to be in ASCII unless the switch /EB is given, in which case they are assumed to be in EBCDIC. If the tape is not really an ANSI format tape, the TPC copy operation is not changed. Thus the /ANsi switch may be used on a tape of unknown format. The default is /AN, and to force BIGTPC NOT to look for ANSI labels (looking normally only at 80 byte records unless the /RT subswitch is used), use the /-AN switch. /EB - This subswitch of the /AN switch forces on ANSI label checks but causes TPC to look for EBCDIC header labels rather than ASCII. Note that TPC looks for either ASCII or EBCDIC, not both. The default is not to look for ANSI labels and end copy at double EOF; the /AN or /EB switch settings allow some modifications to this. /RT - Use RT11 type "ANSI" labels. RT11 may not make label records 80. bytes long, and if you have RT11 tapes, the ANSI checks will normally ignore the RT11 ANSI labels unless you use this switch. It causes BIGTPC to ignore length of records and checks everything to see if it is an ANSI label record. It is not a very good default because it probably can be fooled easily but may be needed for RT11 tapes. /ER - Specifies that TPC will ignore errors on tape. This specifically means that all errors except EOT/EOV/EOF will be ignored. This is quite useful for recovering data from tapes which are old and full of errors, or for writing an output to a tape with bad spots (though it won't cure bad spots and this method of writing anyway is not necessarily a good idea...). /FR - Rewind the tape after copying to it. Note the /NR switch applies to BEFORE the tape is used and inhibits positioning at that time. The /FR switch will rewind the tape AFTER writing to it. /TR - This switch allows BIGTPC to read a disk to a container file as though it were a tape. It implies BIGTPC should act as though the input device were a tape even if it is not. BIGTPC will need to know the size to copy (defaults to 494. blocks, the size of an RX01) and the start block number (defaults to 0,0) as octal numnbers in the form low:high (see /SZ and /LO switches). The input device is copied 1 block at a time. The normal "control" features like density, rewind, etc., are suppressed UNLESS the /CT switch is used. Their effect is not likely to be meaningful. /TW - This switch allows BIGTPC to write a container file to a disk as though the disk were a tape (on the output side of the command line). It is the inverse of the /TR switch and needs the /SZ and /LO information too. /SZ:low:high - This switch sets the device size for /TR, /TW, and /IM copies, in 2 words of block counts. Note the number of blocks is given, not the last block number, so a disk with 494 blocks is specified as /SZ:494., the high size defaulting to 0. Default value is /SZ:494.:0. /LO:low:high - This switch specifies the starting physical block of the disk to begin transfer from in /TR and /IM, or transfer to in /TW cases. This allows you to move blocks around or to copy only parts of a disk. The default is 0:0, so you won't need to use /LO often unless you intend to copy partial volumes. /CT - This switch allows control-type QIO's to occur even if /IM, /TR, or /TW are specified. These QIO's do things like rewind, write endfile, space forward or back, and set density as well as attach the LUNs. It is not very meaningful for /TR or /TW unless you have a strange device that nevertheless is really a tape (and it's not certain you can emulate it properly this way anyhow). For /IM copies, it allows a tape to be the output device and to receive a blocked copy of a device in format independent ways while still setting density, rewinding, etc. Note the control QIOs are not error checked so if you try to rewind a disk, it'll not hurt you. /IM:low:high:blkfactor - This switch allows BIGTPC to copy data in image mode directly from one device to another. It does not operate AST driven in this mode as it does in all others, but uses all buffers as one large I/O buffer permitting I/O transfers of up to about 72. blocks at a time. The low:high arguments are the block number to begin the output transfer to on the output device (/SZ specifies the length in blocks to move), and the "blkfactor" argument is the number of blocks to be transferred at each QIO$ to the output device. This defaults to 8. so that if the output device is tape, the buffers will be 4096. bytes long. If you specify a bigger blocking factor than BIGTPC can handle, it will just use its maximum. Normal operation will not issue any "write-EOF" operations, but if tape is the output device, the /CT switch will permit these controls to be done so the resulting tape will work (and the /FR switch, the /HD switch, and the /SC switch will work). /FL:filnam -This switch works only with the /IM and /CT switches and will have no effect unless BOTH of these are specified. It causes BIGTPC to write a standard DOS format (FLX format) label record before it writes an image file on tape, using "filnam" (up to 6 characters) as the filename. The full file specification is [1,1]filnam.OLB with standard DOS protection and a creation date of 00-JAN-70. This permits the image file to co-exist on a FLX tape (.OLB is the extension chosen since FLX will copy it in image mode). FLX can skip the nonstandard file and make directories, read, or write on the tape, allowing it to contain other interesting programs (perhaps a copy of BIGTPC to read the images with, for instance). Also, multiple files may be more easily kept on the tape. On input, you must skip this record on tape prior to inputting the file. If /ER is specified, zero byte reads will NOT terminate copies (so sizes better be right!) and lengths copied will be calculated from given block factors, not from returned actual byte counts. /NI - This switch ("Nibble In") allows /IM copies to read a disk 1 block at a time instead of using big QIOs of "blkfct" blocks at a time. Thus, if there is a bad disk block, data on following blocks will not be lost. See the /IM switch doc. for interaction with /ER. /NO - This switch ("Nibble Out") allows /IM copies to write a disk 1 block at a time. It is supplied also to aid output to a disk with bad blocks, guaranteeing that not more than 1 block's data will be lost. Its interaction with /ER is like /IM. The /NI and /NO switches apply only to the /IMage mode copies of BIGTPC. /HE - This switch causes BIGTPC to print a help message summarizing the action of all of its switches and giving the defaults for the more important ones. So that, for instance, TPC BACKUP=MT: will create the file BACKUP (.DOS by default) from the magtape on MT:, and TPC MT:=BACKUP would then create an exact copy of the original magtape onto the tape now mounted on MT:. Note that TPC will only handle one tape at a time and cannot handle block sizes of greater than 4200 bytes without edit and rebuild. If the tapes are FLX format tapes, however, the TPCDIR program ([312,315]) may be used to list directories or extract copies of files in the container file, though in a fairly cumbersone way. Otherwise, BIGTPC acts as a format-independent tape copy to EOT (signalled by 2 consecutive EOFs). CAVEAT: It is possible for a FILES-11 tape to have 2 EOFs in a row where a zero length file is copied, yet not be at EOT. If the tape you are copying may be of this sort, use the /ANSI switch while copying (or the /EBCDIC switch if it came from an IBM site using EBCDIC labels). This will allow TPC to correctly handle double EOFs in the middle of a file. If your tape does not have this pathology, TPC will function correctly also, so the /ANsi switch is a good one to set mast of the time unless you some sort of pseudo-ANSI tape that may have have records starting with HDR2, EOV, or EOF. If your tape was produced by RT11 PIP (possibly also under RSTS), you may need the /RT switch to successfully handle null files. The /ANsi switch is now on by default; use /-AN to turn it off if you must. TPC can report the following errors:- 1. TPC - DISK I/O ERROR. CODE = n TPC encountered an error while reading from/writing to the disk. 2. TPC - MAGTAPE I/O ERROR. CODE = n TPC encountered an error while reading from/writing to the magtape. 3. TPC - COMMAND LINE INPUT ERROR TPC encountered an error in reading the commandline. 4. TPC - COMMAND LINE SYNTAX ERROR TPC encountered an error when trying to parse the command line. 5. TPC - INVALID SWITCH The commandline contained a switch that TPC could not recognise, or a file specification that it could not parse. 6. TPC - OPEN ERROR ON OUTPUT FILE A file was specified as output, but TPC encountered an error when it tried to open it. 7. TPC - OPEN ERROR ON INPUT FILE A file was specified as input, but TPC encountered an error when it tried to open it. 8. TPC - SPECIFY 1 FILE & 1 MAGTAPE DEVICE The commandline either specified magtape as both input and output device, or a disk file as both input and output device. TPC tends to crash when it has an allocation failure while reading tape to disk.