03/01/85 Tape Control Language The TCL source file, written in the Tape Control Language (TCL) is the control file that governs file transfer with the tape_in or tape_out commands. For information on these commands, type: help tape_in or help tape_out The file is actually a program, written by the user, the contents of which describe the file transfer. When the user issues the tape_in or tape_out command, the control file named in the command line by the path argument is compiled and, if the compilation is successful, the generated code is interpreted to accomplish the desired file transfer(s). The same control file can be used with both the tape_in and tape_out commands. Notes on creating a tcl control file: The TCL control file consists of a list of statements of the form: : ; or ; These statements are combined to form file-groups and file-groups are combined to form volume-groups. A TCL control file consists of one or more volume-groups. Notes on file-group: A file-group is a list of statements that define one file transfer. A file-group must begin with a File statement and must contain a path statement. In addition, it may contain one or more local statements. A file-group is terminated by a global statement, an End statement, or another File statement. Notes on volume-group: A volume-group is a series of statements that specify the file transfer(s) to be performed between the storage system and a particular tape volume-set. A volume-group must begin with a Volume statement, contain one or more file-groups, and terminate with an End statement. In additon, a volume-group may optionally contain one or more global statements, which apply to all the file-groups within the volume-group that follow the global statement. List of tcl control file statements: All TCL control files must have at least four statements--a Volume statement, a File statement, a path statement, and an End statement. All other TCL statements are optional. Volume: ; specifies the tape volume to be used in file transfer. This statement causes a tape volume whose volume identifier is to be mounted on a 9-track drive. The "Volume" keyword must begin with an upper case letter. must consist of from 1 to 6 ASCII characters. If contains any of the following characters, it must be enclosed in quotes. 1. any ASCII control character 2. : ; , or blank 3. the sequence /* or */ 4. if itself contains a quote character, the quote itself must be doubled and the entire string enclosed in quotes (See the tape_ansi_ and tape_ibm_ info files for more details on volume specifications.) File: ; specifies the tape file to be read or written. The "File" keyword must begin with an upper case letter. The tape file is identified by and must be from 1 to 17 characters for ANSI labeled tapes, and a valid DSNAME for IBM labeled tapes. The File statement marks the beginning of any local attributes for a given tape file transfer. path: ; specifies the pathname of the storage system file to be read or written. can be either a relative or absolute pathname. End; marks the end of the TCL statements for that volume. "End" must begin with an upper case letter followed by a semicolon. List of global statements: A global statement changes a volume-group default. (See Tape Defaults below.) Block: ; specifies the tape file (maximum) physical block length, in bytes, to be used with subsequent file-groups. Density: ; indicates the density in which the volume is to be recorded. This statement may appear only once within a volume-group or an error is indicated. Expiration: ; specifies the expiration date of files to be written (created). is of a form acceptable to the convert_date_to_binary subroutine, for example, "09/12/79". Format:
; specifies the tape record format to be used with subsequent file_groups. Mode: ; specifies the tape mode and character code to be used with subsequent file-groups. Record: ; specifies the tape file (maximum) logical record length, in bytes, to be used with subsequent file-groups. Storage: ; states the internal (logical) structure of the storage system file(s) to be specified by subsequent file-groups. An unstructured file is referenced as a series of 9-bit bytes, commonly called lines; a sequential file is referenced as sequence of records, each record being a string of 9-bit bytes. must be either unstructured or sequential. Tape: ; specifies the kind of tape that is processed. This statement may appear only once within a volume-group or an error is indicated. List of local statements: A local statement overrides the volume-group defaults in effect at the time a file-group is evaluated. A local statement has no effect outside of the file-group in which it occurs and may appear anywhere within the file-group. block: ; expiration: ; format: ; mode: ; record: ; storage: ; these local statements operate exactly as do their global statement counterparts, except that they affect only the file-group in which they occur. generate; causes the entire contents of a file on an ANSI tape to be replaced while retaining the structure of the file itself and incrementing the file generation number. modify; causes the entire contents of a file on an ANSI or IBM labeled tape to be replaced while retaining the structure of the file itself. number: ; specifies the file sequence number of the file to be used in the file transfer. must be either an integer between 1 and 9999 inclusive, or the character "*". replace: ; replaces an ANSI or IBM standard labeled tape. The file to be overwritten is identified by in the replace local statement and the new file to be written is identified by in the File statement. storage_extend; extends an already existing file in the storage system. tape_extend; allows new data records to be appended to an existing file on an ANSI or IBM standard labeled tape without in any way altering the previous contents of the tape file. Tape defaults: If no Tape statement is specified in the control file, ANSI standard labeled tape will be assumed. If, however, a Tape statement is specified, the tape characteristics for that tape-type will preside as default until overridden. Tape-type ansi: (this is the default) 1) density: 800 bpi 2) file expiration: immediate 3) storage system file format: unstructured 4) mode: ascii character code 5) tape file record format: variable length records, blocked 6) physical block length: 2048 characters (maximum) 7) logical record length: 2048 characters (maximum) Tape-type ibmsl, ibmnl, ibmdos: 1) density: 1600 bpi 2) file expiration: immediate 3) storage system file format: unstructured 4) mode: ebcdic 5) tape file record format: variable length records, blocked 6) physical block length: 8192 characters (maximum) 7) logical record length: 8188 characters (maximum) Control file comments: Comments may be inserted anywhere within the TCL program by surrounding the comment text with the comment delimiters. /* is the delimiter that begins a comment, and */ is the delimiter that terminates a comment. Notes: To read files on a labeled tape, where the file names are not known, the "*" can be used in the TCL File statement with tape_in only. If it is wished to append a file to a given tape volume, it is not necessary to know how many files are on the tape if the tape is labeled. In such a case, the character "*" can be used in the TCL number statement if a valid file name is specified in the TCL File statement. This appending feature cannot be used to create a completely new volume. Either tape_in or tape_out supports processing of unlabeled tapes, provided that the tapes are structured according to the OS standard. ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved