Trailing-Edge
-
PDP-10 Archives
-
BB-H311C-RM
-
swskit-documentation/labeled-tapes.memos
There are 5 other files named labeled-tapes.memos in the archive. Click here to see a list.
+---------------+
! d i g i t a l ! I N T E R O F F I C E M E M O R A N D U M
+---------------+
TO: TOPS20 List A
Lois Frampton
SWE Technical Archive
DATE: Dec. 26, 1978
FROM: Arnold Miller
DEPT: LCG S. E. Dept.
LOC: MR1-2/E37 EXT: 6473
DISTRIBUTED: FILE: <DOC-SPECS>TAPE.M0
REVIEWED: PDM #: ASM-78-003-00
SUBJ: TOPS20 support of labeled tape
0.0 Dedication
Now the whole earth had one language and few words. ... And
the LORD said, "Behold they are one people and they have all
one language; and this is only the beginning of what they will
do; and nothing that they propose to do will now be impossible
for them."
Genesis 11:1,6-7
1.0 Introduction
This specification describes TOPS20's support of labeled tapes.
This support falls into two major areas: the monitor calls and
support routines, and the user mode interface. This
specification is the description of the former and addresses
the latter only when the description of a particular monitor
function is dependant on the user mode system. The user mode
system is described fully in [1].
A labeled tape is one recorded in a predefined, standard
format. TOPS20 recognizes two "standard" formats, ANSI and IBM
EBCDIC. TOPS20 will both read or write ANSI standard labeled
tapes but will not write IBM EBCDIC labeled tapes.
The purpose of labeled tapes is to provide a basis of
interchange among diverse computers as well as to provide some
of the desirable features commonly associated with disk-based
file systems such as protection, file names, and record
formatting. While TOPS20 implements the full ANSI standard and
therefore provides many of these features, it does not provide
Page 2
a cataloging facility.
The monitor support of labeled tapes may be divided into two
major subdivisions: label processing and record formatting.
Label processing involves the recognition and production of the
standard labels. The information in the file labels of a
labeled tape convey: data format, owner, protection, and name.
The label processing portion of the monitor recognizes the
standard labels, verifies the user's access to each file and
directs the record processing portion as to the format of the
file data. The record processing routines are responsible for
assembling logical records. A logical record may be coincident
with a physical block (unblocked records), it may be less than
a physical block (blocked records) or it may reside in more
than one physical block (spanned records). The creator of the
file selects the data mode best suited to the application and
to the physical medium.
In the following descriptions, references to labeled tapes and
descriptions of label fields and formats will conform to ANSI
labels. The differences between ANSI formats and IBM EBCDIC
formats will be descriped in appendix A.
The following descriptions assume a familiarity with [2].
Whereas it is Intended that this specification be useful on its
on merits, it is advisable to have read the first seven
sections of [2] before proceeding.
Page 3
2.0 Label processing
!------------------------------------------------------!
!V! !V!U! !H!H! !H!U!T! d !T!E!E! !E!U!T!T!
!O! ...!O!V! ...!D!D! ...!D!H!M! a !M!O!O! ...!O!T!M!M!
!L! !L!L! !R!R! !R!L! ! t ! !F!F! !F!L! ! !
!1! !n!s! !1!2! !n!s! ! a ! !1!2! !n!s! ! !
!------------------------------------------------------!
Fig.1 A single-file volume
!----------------------------------------------------!
!V! !V!U! !H!H! !H!U!T! d !T!E!E! !E!U!T\
!O! ...!O!V! ...!D!D! ...!D!H!M! a !M!O!O! ...!O!T!M\
!L! !L!L! !R!R! !R!L! ! t ! !F!F! !F!L! \
!1! !n!s! !1!2! !n!s! ! a ! !1!2! !n!s! \
!----------------------------------------------------!
!--------------------------------------!
\H!H! !H!U!T! d !T!E!E! !E!U!T!T!
\D!D! ...!D!H!M! a !M!O!O! ...!O!T!M!M!
\R!R! !R!L! ! t ! !F!F! !F!L! ! !
\1!2! !n!s! ! a ! !1!2! !n!s! ! !
!--------------------------------------!
Fig. 2 A multi-file volume
!--------------------------------------!
\H!H! !H!U!T! d !T!E!E! !E!U!T!T!
\D!D! ...!D!H!M! a !M!O!O! ...!O!T!M!M!
\R!R! !R!L! ! t ! !V!V! !V!L! ! !
\1!2! !n!s! ! a ! !1!2! !n!s! ! !
!--------------------------------------!
!----------------------------------------------------!
!V! !V!U! !H!H! !H!U!T! d !T!E!E! !E!U!T\
!O! ...!O!V! ...!D!D! ...!D!H!M! a !M!O!O! ...!O!T!M\
!L! !L!L! !R!R! !R!L! ! t ! !F!F! !F!L! \
!1! !n!s! !1!2! !n!s! ! a ! !1!2! !n!s! \
!----------------------------------------------------!
Fig. 3 A multi-volume file
2.1 Format of a labeled tape
A labeled tape consists of several physical files. The tape
marks on a labeled tape do not necessarily delineate logical
files. In fact, on a standard labeled tape, a single logical
file consists of at least three physical files. The basic
constituents of a labeled tape are: volume labels, file header
Page 4
labels, data and file trailer labels. Each of these sections,
except the volume labels, is contained in a physical file, i.e.
terminated by a tape mark. In addition, a given file may
require more than one volume thereby increasing the number of
physical files required to hold it.
2.1.1 Volume labels
The first records on a volume must be standard volume labels.
The format and processing of volume labels are described in
reference [1]. The monitor neither reads nor writes any of the
standard volume labels or user volume labels.
2.1.2 File header labels
Each data file is preceded by standard file header labels. If
the file or file section is the first one on the volume, the
file header labels will immediately follow the volume labels.
If the file is not the first one on the volume, the file header
labels will follow the tape mark indicating the end of the
previous file.
The file header labels and user header labels are delimited by
a tape mark.
TOPS20 will read and write the first two standard header
labels, called HDR1 and HDR2. If any other header labels are
present (HDR3 through HDR9), they will be skipped. Immediately
following the HDR labels, and contained within the same
physical file, are the user header labels (UHL). TOPS20 will
make these available to the user program on read and will
provide the user program the opportunity to write them on
write. Each of these labels (HDR and UHL) are 80 characters in
length. Since each of the UHL labels must begin with the four
indentifying characters, there are 76 data characters available
to the user program to interpret or write as it wishes.
If there are UHL labels on the tape and the user program does
not choose to read them, they will be skipped.
The file header labels (HDR and UHL) are delimited by a tape
mark.
If a file does not fit on a single volume, it will be continued
on another one. The portion of a file on each volume is called
a file section. Each file section has its own HDR and UHL
header set.
2.1.3 Data
Following the file header set is the file data. The processing
of this portion of the tape is under the jurisdiction of the
record processing routines and will be described in the next
section of this specification.
Page 5
2.1.4 Trailer labels
Following the tape mark delimiting the end of the data for this
file section is the file trailer set. If this is the last
section of the file (or the only one, if the file fits entirely
on one volume) then the file trailer set will begin with
standard end-of-file labels (EOF). TOPS20 will write two such
labels, EOF1 and EOF2. When reading, TOPS20 will process up
through EOF2 and will skip any other EOF labels encountered
(EOF3-EOF9). If this is not the end of the logical file, then
the file trailer set will begin with end-of-volume labels
(EOV). As with EOF labels, TOPS20 will write two such labels,
EOV1 and EOV2 and when reading will process up through EOV2 and
skip any other EOV labels encountered (EOV3-EOV9). If the file
trailer set begins with EOV labels, then the remaining
section(s) of the file is(are) on other volumes and no more
data is on the current volume.
Following the EOF or EOV labels are the user trailer labels
(UTL). As with UHL labels, each is 80 characters, 76 of which
are available to the user program.
2.1.5 Reading and writing user labels
The user program may read or write header or trailer labels at
the appropriate times. UHL labels may be read or written
before any data transfers have been attempted. UTL labels may
be read or written only at the end of the data. Merely writing
a UTL label during normal processing will terminate the file
and precede the UTL labels with EOF trailer labels.
If the monitor needs to perform a volume switch on read or
write, the user program may request that it be interrupted
before the current volume is removed so that it can read or
write UTL labels. Writing UTL labels under this circumstance
will not cause EOF labels to be written. Furthermore, when the
new volume is loaded, another interrupt will be generated when
the UHL labels of the next file section are available for
reading or writing. It is important that when UHL or UTL
labels are being processed on a volume switch, that the user
program do all of its label processing at interrupt level and
not dismiss the interrupt until it is ready to proceed with
reading or writing data.
On reading, UTL labels accompanying the EOF trailer labels may
be read when the end of data is reached. This is indicated by
the receipt of an end-of-file error from a sequential read
(IOX4 error from SIN or BIN) or end-of-file software interrupt.
2.1.6 Declaring Label values
2.1.6.1 Standard label values
Most of the fields of the file header and trailer labels (HDR,
Page 6
EOF and EOV) are filled in by the monitor. The user program,
by the selection of the record format and several other
quantities, supplies some of the fields of these labels. The
user-supplied fields to these labels are specified via
attributes in the file name specified to GTJFN. The attributes
that affect the standard labels are:
;FORMAT:(F,D,S,U)
F= fixed length records
D= variable length records
S= spanned records
U= undefined format. This format is not part of the ANSI
standard and is available for "parochial" useage. In general,
data recorded in U format is not interchangable among different
systems. TOPS20 uses U format to record binary files that
contain 36 bits of information per word.
;RECORD-SIZE:n
n= The maximum size of a record
;BLOCK-LENGTH:n
n= The maximum size of a physical tape block
;EXPIRATION-DATE:n
n= the date at which the data in the file may be overwritten
;Pn
n= the file protection desired
By specifying one or more of these attributes when writing a
file, the user directs the monitor to fill in the proper
information in the file header and trailer labels. Each of
these attributes has a default value as follows:
FORMAT=U (undefined format) or D (variable) (see section 3.4
for more information)
RECORD-LENGTH= Job or system tape default record size
BLOCK-LENGTH= same as RECORD-LENGTH
EXPIRATION-DATE= expired (field is filled with blanks,
indicating the file has expired).
P= any access by any user
Page 7
When reading a file, theses attributes, if specified, are
superseded by the information in HDR1 and HDR2.
2.1.6.2 User header and trailer labels
The contents of the user header and trailer labels are
specified entirely by the user program. The decision to
include user labels is the programmer's and the interpretation
of the data therein must be done by user-supplied programs.
The monitor will limit the number of user labels that may be
written so as to preclude writing off the end of the volume (a
particularly nasty error). The maximum number of user labels
that may be written is eight.
Following are the MTOPRs that are used in processing user
labels.
2.1.6.2.1 Declare PSI channel for EOV label processing
This MTOPR declares the software interrupt channel to be used
by the monitor to indicate that the UTL labels at the
end-of-volume or the UHL labels at the start of the new volume
are available. If no such MTOPR is performed before an EOV
label set is encountered, the user program will not be given
the opportunity to process the UTL or UHL labels during the
volume switch operation.
MTOPR
AC1/ The MT JFN
AC2/ .MOPST
AC3/ PSI channel to set (-1 => clear assignment)
2.1.6.2.2 Read label information
This MTOPR is used to read the available fields from the
standard volume and header labels. The ANSI standard defines a
number of fields in the standard volume and file labels, some
of which are of no concern to the user program. This MTOPR
returns the items that might prove useful to the processing
program.
MTOPR
AC1/ The MT JFN
AC2/ .MORLI
AC3/ Address of argument block of the form:
word 1/ count of words in block
word 2/ offset to store label type of this tape (octal code)
word 3/ pointer to string to store volume name
word 4/ pointer to string to store owner name
word 5/ offset to store tape format (ASCII character)
word 6/ offset to store record length (decimal number)
Page 8
word 7/ offset to store block length (decimal number)
word 8/ offset to store creation date (in internal format)
word 9/ offser to store expiration date (in internal format)
word 10/ pointer to string to store file name
word 11/ offset to store generation number (decimal number)
word 12/ offset to store generation version number (decimal
number)
word 13/ offset to store mode value
On return, the left half of word 0 will contain the number of
items returned or skipped.
If any offset described as a pointer is zero, the associated
value will not be returned.
This MTOPR may be issued before or after opening the JFN. If
it is issued before opening the JFN, only the first three items
will be returned.
2.1.6.2.3 Read/Write user header or trailer labels
These MTOPR functions are used to read or write user labels.
.MORDL may be issued to read user header labels immediately
after the file has been opened and before the first input is
requested or after a volume switch has occurred and the volume
switch PSI has been generated. User header and trailer labels
may be read if the file is opened for read or append only.
The .MOWUL function may be issued to write user header labels
immediately after the file is opened and before the first write
is performed or when the PSI is generated indicating that a
volume switch has occurred. User header and trailer labels may
only be written if the file is opened for write access.
User trailer labels may be read or written at any time after
the first data operation (read or write). If the program
requests to read or write user trailer labels, the tape will be
positioned to the EOF trailer section if reading or if writing,
the file will be terminated with an EOF trailer section. Once
user trailer labels are written in this manner, no more data
may be read or written.
User trailer labels may also be written during a volume switch
sequence. Once the PSI indicating EOV has been received, the
user program may write UTL label into the EOV trailer section
(see Fig. 3). As noted before, this operation must be
performed at interrupt level.
MTOPR
AC1/ The MT JFN
AC2/ .MORDL
AC3/ String pointer to area to receive label
Page 9
On success return:
AC2/ User label identifier. This will be the ASCII
character following the UHL or UTL.
AC3/ updated string pointer
IOX4 End of labels encountered
This function may be used to read either the UHL or UTL labels.
MTOPR
AC1/ The MT JFN
AC2/ .MOWUL
AC3/ String pointer to label contents
AC4/ Label identifier byte
The string designated by AC3 must contain 76 bytes of data.
The monitor will use the first 76 bytes encountered as the
label contents.
The label identifier code may be any ASCII character.
This function may be used to write either UHL or UTL labels.
It is possible to enounter EOT while writing the first UTL in
the EOF trailer set. This can occur if the last data write
overwrote the EOT mark. In this instance, the user program
will receive the EOV PSI from within the code writing the UTL
labels for the file. It is not possible to receive an EOV PSI
while writing the trailer labels in the EOV trailer set.
2.2 Data
The data formats used on a labeled tape are specified by the
ANSI standard. Several formats are available in order to meet
the diverse needs of applications and hardware.
The standard distinguishes the demands of the hardware from
those of the program. This is accomplished by specifying the
physical block size independently of the logical record
structure. The selected block size should be chosen to be
optimal for the recording density, the drive type, and the
interface hardware necessary to transmit the data. The logical
record size and type should be selected to make processing by
the program as efficient as possible. It should be noted,
however, that the efficiency gained by selecting a particular
record type, e.g. spanned, may be offset by the additional
processing required of the monitor.
2.2.1 Blocking
Logical records may be blocked. That is, more than one logical
record may reside in a single physical tape block. This will
Page 10
occur whenever the physical block size is at least double the
logical record size and the record format is either fixed or
variable. Furthermore, it is likely to happen with spanned
records no matter what the ratio is between block size and
record size.
2.2.2 Fixed records (F format)
Fixed length records are the easiest for the monitor to
process. Therefore whenever the data is record-oriented, and
the records are of constant length, F format is appropriate.
If SOUTR is used to produce the records, each SOUTR must have a
count that is an integral multiple of the record size. Any
exception will produce a data error. When using SOUT, the
total length of the data written must be an integral multitple
of the record size. Again, any exception will produce a data
error.
The monitor will automatically block records if the specified
block size is at least double the logical record size. Files
recorded in fixed length records make the most efficient use of
the tape if the block size is an integral multiple of the
logical record size.
2.2.3 Variable records (D format)
Variable records provide an increased level of sophistication
over fixed length records. Since the monitor may produce
records of any length, it need not resort to filling.
Furthermore, it can make the decision to block or not as each
record is produced. Variable records should be used when the
record size can always be less than or equal to the block size,
the records are not of uniform length, and the processing
program does not want to be bothered with detecting filler
characters. An example of this is producing a "standard" tape
file with the EXEC.
Each D format record contains four control bytes. These four
bytes contain the record length encoded as four ASCII
characters. These control bytes or RCW are necessary for the
program that reads the data to know how long each record is.
If the file is blocked, each physical block may contain
multiple records each of which is preceded by its own RCW.
Since the records in a D format file are not of uniform length,
the number of records that will be in each block will vary from
one block to the next. Furthermore, the size of the blocks
will also vary from one to the next. The parameter given in
the BLOCK-SIZE attribute is the maximum block length and the
monitor will produce blocks of varying length up to this
maximum to accommodate the records being written.
2.2.4 Spanned records (S format)
It may occur that the logical record size that an application
Page 11
wishes to deal with is very large. In fact, such records may
be larger than the ideal physical block size for the device.
In order to accommodate such a situation, spanned records are
supported by the record processing routines. A spanned record
is one that may occupy more than one physical tape block. In
fact, a spanned record may occupy many physical blocks, and may
even occupy blocks on different volumes.
As with variable records, spanned records never require filling
and have special control bytes associated with each record.
Each spanned records is preceded by five control bytes, a span
descriptor byte and the four RCW bytes described in section
2.2.3. The span descriptor byte is an ASCII character in the
range 0 to 3 (octal codes, 60,61,62 and 63). The associated
meanings are:
0= record begins and ends in this segment
1= record begins but does not end in this segment
2= record neither begins nor ends in this segment
3= record ends but does not begin in this segment
A single record may have no more than one segment in a single
physical block. If the record fits entirely in the one
segment, then it will be prefixed with a "0" span descriptor.
Segments of spanned records will be blocked whenever possible.
However, if a single block contains more than one segment, the
first segment in the block must be either a "0" or a "3", all
middle segments in the block must be "0", and the final segment
in the block must be either "0" or "1".
As can be deduced from the description, spanned records are the
most difficult of the formatted types to process. The
implication of this is that the monitor must inject more
overhead in the processing of spanned records than in the
processing of variable or fixed length records. In particular,
the record positioning functions such as backspace and
forward-space are particularly costly when the file is recorded
in spanned format.
2.2.5 Mode (or form-control)
The DEC tape label standard [3] defines an additional field
that serves to define the data in each file. This field is in
the HDR2 label and may contain one of the following values:
space no line format characters are present
A FORTRAN format controls are present
M All necessary line format charaacters are
present
X Data is in stream format
Page 12
The purpose of this field is to enable the program reading the
data to correctly format the file for its own host environment.
It should be noted that M and X are similar in many aspects.
Generally, however, M implies that each tape record is exactly
one line or unit of the file whereas X conveys no such
implication. An X mode file is one that is one complete unit
and has been arbitrarily divided into records in order to
conform to the ANSI standard. Neither file mode requires any
additional characters in order to be typed or listed on a
formatting device (e.g. a line printer).
TOPS20 will make the contents of this label field available via
the .MORLI MTOPR and will allow it to be set with the .MOSMV
MTOPR.
3.0 Opening a labeled tape
Since the file labels on a labeled tape contain a file name, it
is possible to request that GTJFN find a file by name, or
return the name of each file encountered. Following are the
rules for a name look up on a labeled tape:
1. If a GTJFN is executed specifying GJ%OLD and a
non-null file name, the monitor will search the volume
for the specified name. The file name search is
forward only.
2. If a GTJFN is executed either with a null file
name, or without specifying GJ%OLD, the monitor will
not search the tape.
3. If a GTJFN is executed with any field containing
wild card characters ("*" or "%"), the monitor will
search the tape for a matching file name. As with
other file name searches, the search is only forward.
Item 3 above provides the necessary support for the EXEC's
DIRECTORY command.
Several important restrictions apply to file name searches:
1. Interrupting a file name search while the tape is
being positioned is not advised. The tape label
routines judiciously monitor the current position of
the tape, and make assumptions based on the perceived
position. If a tape positioning command is
interrupted, the monitor must assume that a loss of
position has occurred. The monitor can recover from
this loss of position, but only at some cost (the
technique is to rewind the volume and reposition to the
beginning of the last encountered file).
2. The ANSI standard restricts the file name field in
the tape labels to seventeen characters. The monitor
Page 13
encodes the file name in this one field by placing the
name, extension ,and the delimiting character (".") in
the label field. Therefore, only files whose name plus
extension is less than or equal to sixteen characters
may be written on a labeled tape.
3. If the GTJFN call does not provide a file name
(i.e. the string MTn: is given to GTJFN), the monitor
will provide the default name:
volid-FILE-n
where:
volid is the name of the volume
n is the file sequence of the file
3.1 GTJFN attributes
Attributes given on a GTJFN of a labeled tape are acted upon
when the OPENF JSYS is issued to actually access the file.
Errors may be generated by GTJFN if the specified attributes or
their associated arguements are syntactically incorrect.
Section 2.1.6.1 describes some of the attributes that may be
specified on a GTJFN call. In addition to these, the following
attribute may be specified:
;POSITION:n
n= the file sequence number to position the tape to
This attribute is useful when the file number is known, but the
file name is not. Positioning is only performed in the forward
direction.
Unlike the attributes specified in section 2.1.6.1, this
attribute has no effect on the format of the data or on the
contents of the labels. It is provided solely to position the
tape to the proper file.
If both a file name and a ;POSITION attribute are specified on
the same GTJFN call, the name search will be performed as part
of the GTJFN call and the attribute will be processed when the
OPENF JSYS is performed.
3.1.2 Specifying protection
The creator of a labeled tape file may specify the protection
of the file. By default, no special protection is indicated.
However, if desired, the ;P attribute may be specified in order
to exclude or include access by others.
If a ;P attribute is specified, then the access character in
Page 14
HDR1 will be stored as a "1", and the six octet protection code
will be stored in the system-dependent field in HDR2. When
specifying a protection, the group octets must be zero.
The protecton is interpreted exactly as that for a disk file.
However, there is no group privilege on a tape and therefore
all users of the tape are either "owner" or "world".
When ;P is specified, the monitor will set all access bits for
owner and will use the given access bits for world. This
implies that the owner of a tape file may always have full
access but that other users are constrained by the access
specified by the creator of the file.
3.2 OPENF
Once a JFN is obtained on a labeled tape, OPENF must be issued
to read or write data. The processing that occurs during the
OPENF JSYS varies depending on whether the desired access is
read, write, or append. In most cases, the header labels of
the file are verified, but the types of exceptions that are
tolerated differ. Following are descriptions of the processing
for each of the types of access. In these descriptions, it is
assumed that a well-formed tape is being accessed and that it
is not possible to read beyond the end of recorded data.
3.2.1 Read access
Opening a labeled tape for read access will succeed as long as
the user has access to the specified MT. That is, the file
labels are not verified when an open for read is requested.
This is so that positioning operations ,e.g. rewind, can be
achieved without having to have access to the present file on
the volume. The "normal open checks" will be made when the
first read is requested.
Upon requesting the first read three things can occur. First,
a good set of header labels is found that specify that the
desired access is allowed. Second, a good set of header labels
is found that indicates that read access is not allowed.
Finally, a tape mark is encountered in place of the header
labels. In two latter cases, the read request will produce an
error.
If a good set of header labels is encountered and a ;POSITION
attribute was given on the GTJFN, the tape will be positioned
to the requested file. Having reached this file position, the
header labels will be verified.
3.2.2 Append access
Append access applies the same criteria as read with the one
exception that if a tape mark is encountered in place of header
labels, data operations will be successful without first
repositioning the tape.
Page 15
By opening for append, the program may read the UHLs in the
header set but may not write them. The first write will
position the tape to the end of the current file (invoking
volume switches if required) so that existing data are
preserved.
3.2.3 Write access
An OPENF for write will succeed providing that the header
labels, if present, allow write access to this file. If a tape
mark is encountered in place of the header labels, the OPENF
will also succeed.
As with the other two forms of access, if a ;POSITION attribute
was specified on the GTJFN the tape will be positioned to the
proper file before the labels are verified for access.
3.3 Access to a file
Access to a file is granted based on the access code and
expiration date found in the file headers. In order to read a
file, the access found must allow read access by this user. In
order to write or append to this file, the access code must
allow write access and the file must be expired.
TOPS20 recognizes two different access codes on TOPS20 tapes,
and one code on non-TOPS20 labeled tapes. If the access code
is the character "blank" (040), then either read or write
access is allowable to anyone. If any other code is present on
a non-TOPS20 labeled tape, then access must be verified by the
GIVOK/GETOK policy program (see section 3.3.1)
If the code "1"(061) is present on a TOPS20 labeled tape, then
additional access information is recorded in system-dependent
field in HDR2. The additional informaton is a standard
six-character protection code used to control access to disk
files. If the code specifies that access is allowed for this
class of user (only "owner" and "world" access are implemented)
then access is granted.
If any access character other than blank or "1" is present on a
TOPS20 labeled tape (presently there is no way to create such a
tape), then the access must be verified by the GIVOK/GETOK
policy program.
3.3.1 GIVOK/GETOK access verification
If the monitor cannot interpret the file access code in HDR1,
it will request that the GIVOK/GETOK policy program verify the
requested access. Since the information required for such a
decision is diverse (in general, the contents of HDR1, HDR2 and
any VOL labels is required), the monitor supplies only a
minimum amount of data in its GETOK request. The policy
program is expected to obtain any additional data it requires
with the MTU JSYS (see section 5, new monitor calls).
Page 16
A GETOK will be issued whenever:
1. The tape is not a TOPS20 labeled tape and the
access code in HDR1 is not a blank (040).
2. The tape is a TOPS20 labeled tape and the access
code in HDR1 is other than blank or 1(061).
The GETOK that is issued is function .GOMTA and the associated
arguments are: access character, MT unit number, user number
of user requesting access, label type (.LTxxx) and the enabled
capabilities of the requestor. The MTU monitor call may be
used to obtain the actual label contents. If no policy program
is running, the default is to deny access on such occasions.
3.4 Default modes
3.4.1 Read
When opening an MT file for read, the data mode, record size
and block size are determined from the data in HDR1 and HDR2.
If no HDR2 is present, then fixed format (F) is assumed (this
is specified as the proper action for level 1 adherence to the
ANSI standard [2]).
3.4.2 Write
When opening a file for write, the data mode, record size and
block size must be specified by the user program. If any of
these are omitted (i.e. the corresponding attribute is not
given in the file specification), the following are used:
Record size and block size are assumed to be the job default
record size for tapes (settable with the EXEC command: SET
TAPE RECORD-LENGTH). If no job default has been established,
the system default is used.
If the file is opened with seven or eight-bit bytes, the record
format will be variable (D). If the file is opened with other
than seven or eight-bit bytes, then undefined format is assumed
(U).
3.5 Dump mode
It is possible to read or write a labeled tape file using dump
mode. The data format must be U and consequently the
formatting of the data must be done by the user program. It
should be noted that dump mode output to a labeled tape can
subvert the block-size limit specified in the GTJFN. Since
this value is stored in the file header, it is available to the
system that reads the file. If any write produces a block in
excess of the specifed block-size parameter, then the file can
only be read in dump mode.
While a file may be read or written in dump mode only if the
Page 17
format is U, it is possible to open a file on a labeled tape in
dump mode and issue positioning operations although the format
is other than U. Of course, the positioning operations on
records will affect entire tape blocks rather than logical
records. This lattitude is provided for the sake of
compatability with existing processing methods and is by no
means encouraged.
3.6 Non-TOPS20 tapes
The monitor is capable of reading the data on any standard
labeled tape as long as the data format is one of F,D, or S.
If the format is U however, there is ambiguity in how the data
was recorded and how it is to be interpreted.
The monitor assumes that any U format tape recorded on a system
other than TOPS10 or TOPS20 is to be read as a stream of 8-bit
bytes and will therefore read the MTA in "industry compatible
mode" (U format tapes recorded on either TOPS10 or TOPS20 will
be read in the job default mode). If the user program wishes
to employ another mode, it must issue the .MOSTS MTOPR to set
the proper mode (note that in this case, the job default mode
is not honored. This differs from the processing of U format
TOPS20 tapes, where the MTA format is the job default format).
3.7 Closing a tape file
3.6.1 Abort close
An abort close is accomplished by setting the CZ%ABT bit when
issuing the CLOSF or CLZFF monitor call (also, open files will
be closed with abort if an EXEC RESET command is issued). If a
labeled tape JFN is closed with abort, then the tape is assumed
to have "lost position" (section 3.0 has a discussion of this).
In such a case, the next OPENF will have to reestablish the
position of the tape. This may take some time, but in general
should succeed. It is important to note that in this case, the
tape will be positioned to the header label set of the file
that was opened when the abort close was issued. This has an
important impact on the SKIP FILES command.
Once a labeled tape JFN is closed with abort, it is not
possible to do a name search with GTJFN until the tape has been
opened once again and positioned to the start of a valid file
(the EXEC commands that will accomplish this are:REWIND and
SKIP).
3.6.2 Normal close
If a CLOSF or CLZFF is issued to a labeled tape JFN and the
CZ%ABT bit is not set, the tape will be positioned to either
the header label set of the next file in the file set (even if
that file is on another volume) or to the second tape mark at
the end of the volume set. Consequently such a close may
require some amount of time, especially if one or more volume
Page 18
switches is required. It is recommended that this form of
close be used whenever possible since it precludes having to
"reposition" the tape on the next OPENF.
4.0 Interface to MTCON
The monitor relies on MTCON to process the volume header
labels, to verify the user's access to the volume, to determine
the density to be used in reading or writing the tape and to
communicate with the operator. In so doing, MTCON uses several
of the new monitor calls provided to implement labeled tape
functions.
The single most important of these functions to MTCON is the
.MOLOC function of MTOPR. This MTOPR function is used either
to specify the first volume on a MOUNT request, or to identify
the "next" volume on a volume switch. The format of this
function is:
MTOPR
AC1/ The MTA JFN
AC2/ .MOLOC
AC3/ address of argument block of the form:
.MOCNT/ count of words in the block
.MOMTN/ MT unit # to associate with this MTA
.MOLBT/ Label type (.LTxxx)
.MODNS/ Density
.MOAVL/ Address of volume labels
.MONVL/ Number of volume labels at .MOAVL
.MOCVN/ Volume number in the volume set
4.1 IPCF messages sent to MTCON
When the monitor requires MTCON to perform a service (i.e. a
volume switch), it will send it an IPCF message describing the
desired service. The events that cause such a message are:
end-of-volume encountered reading or writing a file section,
backspace to a previous file section, rewind volume set or
forward space to the next file section. Volume switches can
occur either when reading or writing the tape or during a name
lookup associated with GTJFN or GNJFN.
The format of the message sent to MTCON is:
.VMCOD/ Function code
.VMVSM= volume switch requested
.VSMTN/ MT unit number
.VSFLG/ flags,,subfunction
flags:
Page 19
VS%WRT (1B0) file opened for write
subfunctions:
.VSMNV mount nTH volume
.VSFST mount first volume
.VSLST mount last volume
.VSMRV mount relative volume number
.VSCNT count for subfunction. If .VSMRV is
specified, this is a signed number (i.e. the monitor
may request a "backspace volume").
5.0 New and modified monitor calls
In order to properly support labeled tapes, the operation of
several of the MTOPR tape functions had to be modified.
Although the intention is for a labeled tape to appear the same
to an existing program as an MTA-style device, some of the
functions now available to the MTA device had to be modified or
proscribed. The following sections will describe new utility
functions available with labeled tapes as well as any
preexisiting tape functions that now behave differently.
5.1 Modified MTOPR functions
5.1.1 .MOREW
This function rewinds only the currently mounted volume. A new
function is available to rewind the volume set.
5.2.1 .MOEOF
This function is offered for compatability with existing
processing techniques (this support should not be construed as
condoning these methods). Issuing this function will terminate
the data portion of the file, write EOF trailer labels, and
leave the tape positioned to accept user trailer labels. It is
possible at this point to: write user trailer labels,
backspace a record and continue writing data (a peculiar thing
to do), or close the file. A second .MOEOF function issued
without positioning the tape backwards, will "close" the file
thereby precluding anymore data operations to the file (once in
this state, a subsequent write will create a new file. This,
again, is a non-standard operation but one provided to be
compatible with exisiting methods).
5.2.2 .MOSDR
Read backwards is not available on labeled tapes. The error
MTOX1 is generated
5.2.3 .MOSDM
This function is allowed only if the file has been opened in
Page 20
dump mode (.GSDMP). If the file has not been opened in dump
mode, the error MTXO1 is generated.
5.2.4 .MOSRS
This function is allowed only if the file has been opened in
dump mode. If the file has not been opened in dump mode, the
error MTXO1 is generated.
5.2.5 .MOFWR
Forward space will position over a logical record. This
implies that many physical records may be skipped (if S format
is used) involving perhaps on or more volume switches.
5.2.6 .MOBKR
As with .MOFWR, this function may space over many physical
blocks.
5.2.7 .MOEOT
Skip to end of tape will position the volume set beyond the end
of the last file in the set. This function is useful for
adding a new file to the end of an already existing volume set.
As with other functions, this may take some time to complete as
one or more volume switches may be required.
5.2.8 .MORUL
Unload is proscribed. An unload function may accompany a
DISMOUNT request if so desired.
5.2.8 .MOERS
Erase tape is prosrcibed.
5.2.9 .MOFWF
Forward space file will skip one logical file. This implies
that many physical files may be skipped involving perhaps one
or more volume switches.
5.2.10 .MOBKF
Backspace file will back up one logical file. As with .MOFWF,
this may imply skipping many physical files and perhaps involve
one or more volume switches (note that for ANSI tape, the
monitor can compute the number of volume switches required to
get to the first section of the file. Therefore, this function
executed on an ANSI tape should require at most one volume
switch. This is not true of IBM EBCDIC tape however.)
In order to be compatible with existing tape processing
methods, issuing this function when the tape is already
Page 21
positioned to the first file of the volume set will not produce
an error. The program issuing this function must follow the
.MOBKF with a GDSTS monitor call in order to determine whether
the BOT was encountered during the spacing operation (Despite
this being a less than efficient sequence, it is the procedure
now executed by tape processing programs).
5.2.11 .MOSDN
Set density is proscribed.
5.3 New utiltity functions
This section will describe the new MTOPR functions not
previously documented.
5.3.1 Rewind volume set (.MORVS)
MTOPR
AC1/ The MT JFN
AC2/ .MORVS
This function will cause the first volume in the volume to be
mounted and positioned to the first file in the file set.
Since a volume switch may have to occur, this function may
block for a considerable time.
5.3.2 Set no translate (.MONTR)
This function sets or clears the EBCDIC to ASCII translate
flag. If the flag is set, and the tape file being read is from
an IBM EBCDIC volume, then all data delivered to the user
program will be in its original EBCDIC form. If the flag is
not set, and the file is from an IBM EBCDIC volume, then all
data delivered to the user program will be in ASCII. In order
to perform this translation, certain information may be lost
(note that the EBCDIC character set contains 256 codes whereas
the ASCII set contains only 128 codes). Note that the setting
of this flag has no effect on the data delivered by the MTU
JSYS (see section 5.4.1).
MTOPR
AC1/ The MT JFN
AC2/ .MONTR
AC3/ 0=> clear flag. Non-zero=> set flag
5.3.3 Set data mode of file (.MOSMV)
This MTOPR declares the value to be placed in the DEC-defined
field in HDR2 called "form-control". This field is not defined
in the ANSI standard but should be specified whenever the data
Page 22
file is meant to be read with DEC supplied software.
This MTOPR merely declares the value to be placed in the label
and has no effect on the monitor'S processing of the data.
That is, it is the user program's responsibilty to produce
records that conform to the declared mode.
MTOPR
AC1/ The MT JFN
AC2/ .MOSMV
AC3/ The value as follows
.TPFST X mode
.TPFCP M mode
.TPFFC A mode
.TPFNC space mode
(see section 2.2.5 for a description of the modes).
5.4 New monitor calls
5.4.1 MTU
The MTU JSYS is used by privileged programs to perform various
utility functions. It differs from MTOPR in that the invoking
program need not have a JFN on the MT nor need it even have
access to the MT. It is intended for use by MTCON to declare a
volume switch error, and by the GIVOK/GETOK policy program to
read the file and volume labels.
MTU
AC1/ function code
AC2/ MT unit number
AC3/ address of argument block
Valid functions and associated argument block
.MTNNV Declare volume switch error
argument block:
.MTCNT/ count of words in block
.MTCOD/ error code to return to user
.MTPTR/ string pointer to operator response
.MTRAL read labels
argument block:
.MTCNT/ count of words in block
.MTVL1/ string pointer to area to hold VOL1
.MTVL2/ string pointer to area to hold VOL2
Page 23
.MTHD1/ string pointer to area to hold HDR1
.MTHD2/ string pointer to area to hold HDR2
If any of the string pointers is zero, the associated label
information will not be returned.
When using the .MTRAL function, each of the returned labels is
eighty characters in length and the format is specified by [2]
(note that for IBM EBCDIC tapes, [2] is not correct. See
appendix A for more information).
.MTASI return assignment information
argument block:
.MTCNT/ count of words in block
.MTPHU/ returned MTA number associated with MT
If no association, .MTNUL is returned
This function is used whenever MTCON starts to determine if
there are any exisiting MT to MTA associations. This can
happen if MTCON is restarted.
Wheel or operator capabilities required.
6.0 Unlabeled tape operation
It is possible to mount a tape specifying that it is unlabeled.
In this mode, the tape is accessible through the associated MT
device, but it will behave exactly like an MTA device. That
is, the caveats and descriptions in section 5 do not apply if
the tape is mounted unlabeled. Furthermore, the record
processing and formatting routines can not be invoked.
6.1 Multi-volume sets
If an unlabeled tape is mounted specifying multiple volumes in
the volume set, the monitor will not automatically perform a
volume switch at the end of each volume. In order to switch
volumes, an MTOPR is provided that the program may issue
itself.
MTOPR
AC1/ The MT JFN
AC2/ .MOVLS
AC3/ pointer to argument block of the form
word 1/ count of words in block
word 2/ flags,,function-code
functions:
.VSFST mount first volume in set
.VSLST mount last volume in set
Page 24
.VSMNV mount absolute volume number
.VSMRV mount relative volume number
at prsent, no flags are defined.
word 3/ argument if .VSMRV or .VSMVN is the sub-function
If .VSMRV is specified, the argument in word 3 is the volume
number, relative to the currently mounted volume, to mount.
That is, if volume number two is now mounted and the function
is issued with a two in word 3, then volume four is being
requested. It is most common to specify .VSMRV with a one in
word 3 (this mounts the next volume in the volume set).
7.0 References
1. TOPS-20 Labeled Tape Processing Specification
Rick Ace
PDM# RTA-78-001-01-s
2. American National Standard for Magnetic Tape Labels and
File Structure for Information Interchange
ANSI X3.27-1969
3. DEC Magnetic Tape Labels and File Structure Standard
Lois Frampton
PDM #005-003-187-07
4. OS Data Management Services Guide
IBM Systems Reference Library
Order Number GC26-3746-1
5. OS Tape Labels
IBM Systems Reference Library
Order Number GC28-6680-4
6. Innumerable and occasionally informative conversations with
Sumner Blount and Sue Godsell, our representatives to ANSI
technical committee X3L5.
7. The exogenous Ted Hess whose early efforts inspired and
drove us all.
Page 25
Appendix A
Differences between IBM EBCDIC and ANSI tapes
This specification has stated many times the formats and
contents of labels and records. In some instances, the
corresponding specification for IBM EBCDIC tapes is different.
These appendix will provide those differences that are germane
to this specification and to TOPS20's support of labeled tapes.
Paramount among the differnences is the most obvious one, the
data stored on an IBM EBCDIC tape is encoded in EBCDIC whereas
the data stored on an ANSI tape is stored in ASCII. The
monitor will translate the EBCDIC into ASCII (see .MONTR MTOPR)
with a concomitant loss of information.
Besides the character code used, other differences exist. The
formats of the labels differ. Since this is of little or no
consequence to most users, this specification will not detail
these differences. However, the GIVOK/GETOK policy program may
need to process the raw label information. References [2] and
[4] describe the labels.
Finally, the record formats differ. IBM EBCDIC supports a form
of records called variable(V format). V format records are
analagous to D format records. The difference is in the RCW
bytes. Variable records are prefixed with a four byte RCW, as
are D format records. The RCW on V format records, however, is
interpreted as follows: The first two bytes form a sixteen-bit
binary number that is the length of the record in bytes. The
last two bytes must be zero. Similarly, S format records under
IBM EBCDIC encode the span descriptor differently than ANSI
tapes. The encoding is as follows: The four byte RCW contains
the two byte record count as for V format records and the third
byte is the span descriptor. The span descriptor byte is a
binary quantity in the range zero to three inclusive with the
following interpretation:
0= record begins and ends in this segment
1= record begins but does not end in this segment
2= record ends but does not begin in this segment
3= record neither begins nor ends in this segment
Furthermore, if the records are blocked (the IBM EBCDIC labels
have a byte called the "blocking descriptor" that indicates
whether the records are blocked. This explicit indication is
not present with ANSI tapes) each physcial block is prefixed
with a block descriptor word or BDW. The BDW is four bytes
long and contains in the first two bytes the length of the
Page 26
block in bytes. The last two bytes are unused and must be
zero.
For a detailed comparison of record types see references [2]
and [5].
While the differences in processing of IBM EBCDIC and ANSI
tapes are borne by the monitor, the user must decide on the
format of the data delivered to the user program. The .MONTR
MTOPR provides the user the capability of receiving the data
from an IBM EBCDIC tape in either ASCII or EBCDIC. See section
5.3.2 for a discussion of this MTOPR function.
+---------------+
! d i g i t a l ! I N T E R O F F I C E M E M O R A N D U M
+---------------+
DATE: 17-Jan-79
FROM: Rick Ace
DEPT: LCG S.E. Dept.
LOC: MR1-2/E37 EXT: 6032
DISTRIBUTED: 4-May-78 FILE: <DOC-SPECS>LTPROC.MEM
REVIEWED: 15-May-78 PDM#: RTA-78-001-01-S
SUBJ: TOPS-20 Labeled Tape Processing Functional Specification
The TOPS-20 tape processing project is an effort to add
functionality and order in the areas of mounting and accessing
magnetic tapes. This specification describes certain segments
of the project, namely: user interface to the EXEC, operator
interface, tape mounting, dismounting, and drive assignment
logic, usage accounting, and tape label and file structure
standards. The remaining issues will be addressed in a
separate specification.
This is the second revision of this specification. The
original version was dated 4-May-78.
Labeled Tape Processing on TOPS-20 Page 2
First Printing, March 1978
The information in this document is subject to change without
notice and should not be construed as a commitment by Digital
Equipment Corporation. Digital Equipment Corporation assumes
no responsibility for any errors that may appear in this
document.
The software described in this document is furnished under a
license and may be used or copied only in accordance with the
terms of such license.
Digital Equipment Corporation assumes no responsbility for the
use or reliability of its software on equipment that is not
supplied by DIGITAL.
Copyright (C) 1978 by Digital Equipment Corporation
The following are trademarks of Digital Equipment Corporation:
DIGITAL DECsystem-10 MASSBUS
DEC DECTAPE OMNIBUS
PDP DIBOL OS/8
DECUS EDUSYSTEM PHA
UNIBUS FLIP CHIP RSTS
COMPUTER LABS FOCAL RSX
COMTEX INDAC TYPESET-8
DDT LAB-8 TYPESET-10
DECCOM DECSYSTEM-20 TYPESET-11
Labeled Tape Processing on TOPS-20 Page 3
1.0 PRODUCT OVERVIEW
1.1 Product Abstract
The TOPS-20 tape processing project is an effort to provide
greater functionality, efficiency, reliability, and security
within the TOPS-20 tape processing domain. Further, it will
facilitate the interchange of tapes between DECSYSTEM-20
machines and other computers through the implementation of
standard schemes for labeling magnetic tape volumes and
identifying and structuring the files that they contain. The
user need only consider the logical structure of his files.
TOPS-20 will provide full tape label and file structure
processing in conformance with standards defined by Digital and
the American National Standards Institute (ANSI). In addition,
users may read tapes that are compatible with IBM System/360
and System/370 operating system data management routines.
Record processing for labeled tapes will be invoked through
standard TOPS-20 I/O monitor calls. The system will retain its
ability to provide user access to tapes in an unlabeled mode,
similar to that of Release 3 and earlier.
The tape mounting facility will allow for multi-reel volumes
and will include automatic volume recognition for unattended
operation. However, an operator may control the scheduling of
user tape mount requests simply by satisfying the requests in
the order he desires them to be processed.
1.2 Markets
The tape processing project is aimed at all customers that have
a requirement for handling of magnetic tape. This facility is
a mechanism for verifying the correct tape is mounted and that
the requestor is allowed access to the data therein, making it
attractive to installations that are concerned with data
security.
1.3 Competitive Analysis
A comprehensive labeled tape processing facility is needed in
order to compete in the commercial data processing market
place. This project will attempt to meet that need by
providing the ability to create and process labeled tapes that
conform to relevant ANSI standards. Support for S360/370
compatible tapes is also an important selling point.
Labeled Tape Processing on TOPS-20 Page 4
1.4 Product Audience
This product is intended for use by all customers using the
TOPS-20 operating system. Even at installations with minimal
applications-oriented tape processing requirements, the labeled
tape processing facility can assist system managers in areas
such as file backup.
1.5 Definitions
The following definitions are provided in an attempt to clarify
the confusing labeled tape processing world to the neophyte.
"a" character Any character from the center four columns of
the ANSI X3.4 character code table, except position
5/15 and those positions where there is a provision for
an alternate graphic representation; this set
comprises the alphanumeric characters (A-Z, 0-9) and
the following special characters:
space ! " % & ' ( ) * + , - . / : ; < = > ?
AVR Automatic Volume Recognition - An operating system
feature to reduce operator work load; when a tape is
mounted on a drive, the system automatically attempts
to identify the tape by reading the first record and
inspecting it for label information.
CP Abbreviation for Character Position
File Set A group of one or more labeled tape files recorded
consecutively upon one or more volumes. The last file
in the set is terminated by an end-of-file label group
followed by two tape marks.
Label Type Refers to the label and file structure standard
used when writing information on a magnetic tape.
Label types mentioned in this specification are:
ANSI - Conforming to ANSI Standard X3.27
EBCDIC - Conforming to IBM specification GC26-3795-2
TOPS-20 - Intended for use within TOPS-20 environments
Labeled Tape A tape that contains standardized information
that identifies and describes the data on the tape.
Scratch Refers to the state of a labeled tape volume in which
the volume is not assigned to any particular user.
Volid Contraction of "volume identifier"; a string of
characters that identifies a magnetic tape. Labeled
tapes are self-identifying because the volid is
recorded in the first record of the tape. For
unlabeled tapes, the volid is an arbitrary alphanumeric
character string from one to six characters in length
Labeled Tape Processing on TOPS-20 Page 5
(typically written on a human-readable label pasted to
the outside of the reel) that will serve to identify
the tape to the operator.
Volume A reel of magnetic tape
Volume Set A group of one or more labeled tape volumes upon
which exactly one file set is recorded.
Labeled Tape Processing on TOPS-20 Page 6
2.0 PRODUCT GOALS
2.1 Performance
2.1.1 Performance Enhancements - This project will enhance
system throughput by providing an automatic volume recognition
service that will minimize the need for operator typein to the
system, and provide the fastest possible connection between a
user job and the tape it wants to access. Functionality
improvements will come in the areas of tape volume interchange
with other systems, protection against intentional and
unintentional hazards, and magnetic tape usage accounting.
2.1.2 Performance Degradation - This project is designed to
add no additional overhead to the actual reading and writing of
tape records. However, there will be additional processing at
all labeled tape file openings and closings to do the proper
verification and writing of tape file labels. Volume mounting
and verification will also incur a small increase in overhead.
The resident monitor will grow mainly due to the addition of a
few words per tape drive required for new status information
and pointers to label information blocks.
2.1.3 Future Considerations - The tape project will provide a
limited pro tempore version of the tape allocation features of
the Mountable Device Allocator system (MDA will be introduced
subsequent to TOPS-20 Release 4). It is therefore a goal to
design the tape facility with MDA in mind to ensure as smooth a
transition as possible.
2.2 Support Objectives
This project will not increase the amount of customer support
required for each system. Furthermore, use of unlabeled tapes
will not be obsoleted by this new facility. The tapes
currently produced by COBOL-10 will be treated by the tape
processor as unlabeled tapes since they conform to none of the
existing standards.
2.3 Environments
The tape processing facility will run on any DECSYSTEM-20 that
has at least one tape drive. There are no restrictions on the
number of drives present or on memory size.
Labeled Tape Processing on TOPS-20 Page 7
2.4 Reliability Goals
This project will not lower the reliability of the existing
monitor. In particular, it will increase the reliability of
the tape sub-system, since the probability of accidental
erasure will be reduced.
To further expand the scope of file security, ancillary TOPS-20
volume protection information may optionally be recorded on
labeled tapes. At this time, an addendum is being proposed to
ANSI Standard X3.27 to provide additional space for system
volume information in the form of VOL2 through VOL9 labels.
2.5 Non-goals
1. Tape cataloging - This project will not provide the
capability to catalog tape files in a central place.
2. 7-track tapes - This project will not provide any
labeling or tape record processing facilities for
7-track tape drives.
3. Tape densities - Support for 556 and 200 bpi NRZI
recording modes for labeled tapes will not be
provided; however, unlabeled processing will be
supported at these densities.
4. Directories - This project will not provide the
illusion of a directory device.
5. Random access - This project will not provide any
random access capabilities on magnetic tapes.
6. Other systems' labeled tapes - This project will not
provide full processing for labeled tapes from other
systems. Only those cases explicitly mentioned herein
will be processed.
7. PA1050 (TOPS-10 Compatibility Package) - No attempt
will be made to interface TOPS-10 labeled tape UUOs to
the TOPS-20 labeled tape processing system.
Labeled Tape Processing on TOPS-20 Page 8
3.0 FUNCTIONAL DEFINITION
3.1 Synopsis of Tape Labeling
Labels are used to identify magnetic tape volumes and identify
and describe the files contained on those volumes. The TOPS-20
tape system will read and write tapes in conformance to the
ANSI, DEC, and IBM OS/VS standards. The ability to process
unlabeled tapes will also exist.
American National Standard tape labels and file formats are
defined by the American National Standards Institute (ANSI).
ANSI labels consist of volume labels and groups of file labels.
The volume label is the first record on the tape; it
identifies the volume and its owner. The file label groups
consist of labels that precede files (header labels) and labels
that follow files (trailer labels). Header and trailer label
groups may optionally contain supplementary labels (user
labels) whose contents are specified and examined only by the
user program. ANSI standard labeled tapes contain labels and
file structures conforming to the standard, ANSI X3.27,
American National Standard for Magnetic Tape Labels and File
Structure for Information interchange. All labels and file
records must be recorded using the American Standard Code for
Information Interchange (ANSI Standard X3.4).
The DEC standard for labeled tapes is almost identical to the
ANSI standard. A list of differences is provided in Section
10.0. Tapes written for use within TOPS-20 environments
(referred to herein as the TOPS-20 label type) and for
interchange with non-TOPS-20 systems (ANSI label type) conform
to the DEC standard.
It is important to note that, using the TOPS-20 label type, a
user may create a tape that does not conform entirely to ANSI
X3.27. However, the creation of an ANSI standard tape may be
ensured by specifying the ANSI label type.
IBM standard labeled tapes (referred to herein as EBCDIC label
type) contain label arrangements and file structures similar to
those specified by the ANSI standard. A list of differences
between IBM and ANSI labeled tapes is provided in Section 10.0.
Data conversions between EBCDIC and ASCII will be performed by
the TOPS-20 monitor.
The following illustration shows basic ANSI standard, IBM
standard, and unlabeled tape layouts for a single file on a
single volume. Detailed descriptions of label formats and file
structures for labeled tapes are provided in Section 10.0.
Labeled Tape Processing on TOPS-20 Page 9
BASIC TAPE LAYOUTS FOR SUPPORTED LABEL TYPES
!-------------------------------------------------------!
!ANSI !ANSI ! ! ! !ANSI ! ! !
ANSI ! STD ! STD ! ! ! ! STD ! ! !
STANDARD! VOL !FILE !TM! FILE DATA !TM!FILE !TM! TM !
LABELS !LABEL! HDR ! ! ! ! TLR ! ! !
! !LBLS ! ! ! !LBLS ! ! !
!-------------------------------------------------------!
!-------------------------------------------------------!
! IBM ! IBM ! ! ! ! IBM ! ! !
IBM ! STD ! STD ! ! ! ! STD ! ! !
STANDARD! VOL !FILE !TM! FILE DATA !TM!FILE !TM! TM !
LABELS !LABEL! HDR ! ! ! ! TLR ! ! !
! !LBLS ! ! ! !LBLS ! ! !
!-------------------------------------------------------!
!-------------------------------------------------------!
! ! ! !
UN- ! ! ! !
LABELED ! FILE DATA !TM ! TM !
TAPE ! ! ! !
! ! ! !
!-------------------------------------------------------!
TM = TAPE MARK
Labels that are functionally related are grouped physically on
a labeled tape. These groups are described below.
LABEL LABEL
LABEL GROUP NAME LABEL SET NAME IDENTIFIER NUMBER
================ ============== ========== ======
BEGINNING-OF-VOLUME VOLUME-HEADER VOL 1 TO 9
UVL 1 TO 9
BEGINNING-OF-FILE FILE-HEADER HDR 1 TO 9
OR FILE-SECTION USER-HEADER UHL a*
END-OF-FIRST OR OF END-OF-VOLUME EOV 1 TO 9
INTERMEDIATE-FILE- USER-TRAILER UTL a*
SECTION
END-OF-FILE OR OF END-OF-FILE EOF 1 TO 9
LAST-FILE-SECTION USER-TRAILER UTL a*
* These are "a" characters, as defined in Section 1.5.
Labeled Tape Processing on TOPS-20 Page 10
3.2 Morphological Overview
The major system components of the tape processing facility are
as follows:
1. MOUNTR - This is a SYSJOB fork that controls the
assignment of tape drives and logical tape (MT)
devices as a function of requests from the EXEC, the
monitor, and QUASAR. MOUNTR will handle user MOUNT,
DISMOUNT, and volume switch functions, perform
automatic volume recognition (AVR) and volume
validation, and converse with the operator through
OPR/ORION.
2. A queueing mechanism will exist in QUASAR to receive
user requests for the assignment of logical tape
devices. These requests will be systematically
delivered to MOUNTR.
3. Commands will be implemented in the TOPS-20 executive
command processor to request tape mounting and
dismounting services from QUASAR.
4. Monitor routines will support label interpretation and
construction, process ANSI standard tape record
formats, and request volume switching from MOUNTR.
5. CHECKD - A command to initialize tapes for use by the
TOPS-20 labeled tape processing system will be added
to this TOPS-20 utility.
Communication between the components of the tape processing
system will be in the form of inter-process communication
(IPCF) packets.
!---------! !---------!
! MONITOR !<--->! MOUNTR ! MOUNT/DISMOUNT REQUESTS
!---------! !---------! VOLUME VALIDATION (AVR)
OPEN ^ ^ VOLUME SWITCHING
CLOSE ! ! LABEL EDITOR / EXCEPTIONS
EOV ! !
REC. PROC. ! !
! !-----------!
V V
!--------! !----------!
QUEUES ! QUASAR ! ! ORION ! OPERATOR
!--------! !----------! INTERFACE
^ ^
! !
V V
MOUNT !------! !---------!
DISMT ! EXEC ! ! OPR !
CMDS. !------! !---------!
Labeled Tape Processing on TOPS-20 Page 11
3.3 System Operating Modes
There will be two operating modes for TOPS-20 with respect to
tape processing and tape drive allocation. The installation
will select one of the modes with a command to SETSPD
(described in Section 5.4).
The labeling, data management, and tape drive allocation
features that are being implemented in this project are enabled
by including the ENABLE TAPE-DRIVE-ALLOCATION command in the
system n-CONFIG.CMD file. If this operating mode is elected,
access to tapes via hard-wired tape drive handles (MTA devices)
will be replaced by a controlled-access scheme that performs
association between logical tape devices (MT) assigned to users
and the physical devices on the system. Any use of unlabeled
tapes will require an operator keyin to identify the volume to
the system, whereas this was not a requirement under Release 3.
If an installation wishes to conduct tape operations in a
fashion similar to that of TOPS-20 Release 3 and earlier, tape
drive allocation may be disabled, and users will be permitted
to assign MTA devices to their jobs and generally continue to
process tapes as they did in the past, with one exception: the
services of the TMOUNT command will not be available.
It is expected that most installations will opt for the former
mode to take advantage of the interchangeability, new features,
and increased security it provides.
Labeled Tape Processing on TOPS-20 Page 12
3.4 USAGE Accounting
The TOPS-20 USAGE facility provides a standardized system for
recording computer utilization data and making this data
available to downstream billing programs. One objective of the
TOPS-20 tape processing project is to add magnetic tape usage
information to the data base maintained by the USAGE facility.
A USAGE entry format for magnetic tape has been specified and
is described in the DECSYSTEM-20 USAGE File specification.
This entry, however, is not logged by Release 3 of TOPS-20.
The data proposed to be recorded by this project differs from
what has already been specified. Tape-mount USAGE entries made
by TOPS-20 Release 4 will contain the standard USAGE entry
header and user identification, and a tape usage record with
the following format:
ITEM START END SIZE TYPE CONTENTS
NO. POS POS
---- ----- --- ---- ---- --------
1 1 4 4 N ENTRY TYPE ('0012')
2 5 5 1 N OPERATING SYSTEM ('2' = TOPS-20)
3 6 6 1 N RECORD SEQUENCE NUMBER ('1')
4 7 8 2 N DEC RECORD REVISION NUMBER, '02'
5 9 10 2 N CUSTOMER RECORD REVISION # ('01')
6 11 20 10 N FILLER (RESERVED FOR DEC)
7 21 59 39 A USER ACCOUNT STRING
8 60 65 6 A VOLUME IDENTIFIER FROM VOL1 LABEL
9 66 71 6 A VISUAL LABEL IDENTIFIER
10 72 79 8 N THOUSANDS OF FRAMES READ
11 80 87 8 N THOUSANDS OF FRAMES WRITTEN
12 88 93 6 A DISPOSITION ('NORMAL')
13 94 132 39 A TEXT REASON FOR DISPOSITION
14 133 146 14 N DATE/TIME REQUEST WAS CREATED
15 147 160 14 N DATE/TIME OPERATOR WAS NOTIFIED
16 161 174 14 N DATE/TIME WHEN VOLUME WAS MOUNTED
17 175 176 2 N TYPE OF CONTROLLER
Labeled Tape Processing on TOPS-20 Page 13
18 177 178 2 N LABEL TYPE, '01'=UNLABELED, '02'=ANSI
'03'=EBCDIC, '04'=DEC
19 179 179 1 N VOLUME LABEL STATE
'0' = UNLABELED VOLUME
'1' = PRIVATE VOLUME
'2' = SCRATCH VOLUME
'3' = SCRATCH VOLUME ASSIGNED TO
USER DURING THIS MOUNT
20 180 187 8 N NUMBER OF PHYSICAL RECORDS READ
21 188 195 8 N NUMBER OF PHYSICAL RECORDS WRITTEN
22 196 201 6 A FILE SET IDENTIFIER (UNLABELED TAPES
CONTAIN BLANKS IN THIS FIELD)
Items 4, 10, and 11 are revisions of currently defined fields,
and items 17 through 22 are new fields.
Labeled Tape Processing on TOPS-20 Page 14
3.5 Scratch Tape Philosophy
Scratch tapes serve two distinct functions within the TOPS-20
tape processing system:
1. Temporary Storage Medium:
Periodically, user applications require large amounts
of temporary storage to be used entirely within the
scope of one job (e.g. intermediate storage for use
during a tape sort). TOPS-20 will permit a user to
call for tape volumes in such a fashion. When the
user has finished accessing the volume(s), they will
remain in the scratch state.
2. Assignment of Tapes to Users:
It is often desirable for a job to create files on
volumes that are assigned when the job is run, placing
the responsibility of tape assignment in the hands of
the operator or data base administrator. The concept
of a "scratch" tape provides a way to accomplish just
that. The user requests a tape mount without
specifying volids, and the system communicates with
the operator to get a scratch volume mounted and
associated with the user job. As the user writes to
the tape, the system updates the volume label group to
reflect that the tape is assigned to the user. This
technique can be used to extend a volume set that
already exists.
TOPS-20 will provide a simple user interface for dealing with
scratch tapes, including informing the user of the volume
identifiers of any scratch tapes assigned to him during the
course of a mount request. On the operations side of the coin,
scratch tapes are identified to the system either implicitly,
by a blank owner name in the VOL2 label of a TOPS-20 labeled
tape, or explicitly, by an operator keyin designating a volume
as a scratch.
Labeled Tape Processing on TOPS-20 Page 15
4.0 COMPATIBILITY
4.1 DEC Products
It is a goal of this project that labeled magnetic tapes
written by TOPS-20 be compatible with other operating systems
that conform to the DEC standard for magnetic tape.
4.2 DEC Standards
The the label fields and file structures of tapes written in
ANSI and TOPS-20 formats conform to DEC Standard # 149,
Magnetic Tape Labels and File Structure.
4.3 External Standards
The following American National Standards are relevant to the
TOPS-20 tape processing project:
X3.4-1977 Code for Information Interchange (ASCII)
X3.14-1973 Recorded Magnetic Tape for Information Interchange
(200 CPI, NRZI)
X3.22-1973 Recorded Magnetic Tape for Information Interchange
(800 CPI, NRZI)
X3.27-1977 Magnetic Tape Labels and File Structure for
Information Interchange
X3.39-1973 Recorded Magnetic Tape for Information Interchange
(1600 CPI, NRZI)
X3.54-1976 Recorded Magnetic Tape for Information Interchange
(6250 CPI, Group-coded Recording)
All labeled tapes will conform to one of the recording
standards, X3.14, X3.22, X3.39, or X3.54. All labels written
using the ANSI and TOPS-20 label types will conform to X3.4.
File information and structure of files written using the ANSI
label type will conform to standards X3.4 and X3.27.
Tapes written with the EBCDIC label type adhere to the IBM
labeled tape conventions outlined in IBM publication
GC26-3795-2, OS/VS Tape Labels.
Labeled Tape Processing on TOPS-20 Page 16
5.0 EXTERNAL INTERACTIONS AND IMPACT
One of the underlying philosophies of this project is to make
the users' conversion from unlabeled tape processing to labeled
tape processing as painless as possible. To respond to this
requirement, the interface between the user and the magnetic
tape system has been changed only where necessary to accomodate
the functionality of the new scheme.
This section will describe the interfaces between the tape
processing system and the rest of the TOPS-20 world.
The following conventions are used in describing the syntax of
commands in this section:
1. Brackets [] surround optional quantities.
2. Literal information (e.g. keywords) are capitalized.
3. All punctuation except brackets is to be regarded as
literal information.
4. Variable quantities (such as volume identifiers)
appear in lower case.
5. If a command is too long to fit on one line, it is
depicted in multiple-line COMND style (hyphen at the
end of every continued line).
5.1 User Interface to the TOPS-20 EXEC
To support the new tape processing system, several new commands
will be added to the TOPS-20 executive command processor, and
new features will be added to some of the existing commands.
Most important of the new commands are MOUNT and DISMOUNT,
which pave the way for the eventual channeling of all requests
for management of mountable media (currently, tapes and disks)
through a system mountable-device allocator (MDA). As the MDA
project is currently in the design stages, the MOUNT TAPE
facility will be temporarily interfaced to QUASAR and MOUNTR by
the EXEC. At some time in the future, the TMOUNT, SMOUNT,
SREMOVE, and SDISMOUNT commands will be phased out, and all
tape and disk mount requests will be made through the MOUNT
TAPE and MOUNT DISK commands in the EXEC, and, possibly,
through a standardized assembly language interface to MDA.
Labeled Tape Processing on TOPS-20 Page 17
5.1.1 The MOUNT Command -
5.1.1.1 Motivation - Any user wishing to access a tape under
the new tape processing system will issue either the MOUNT TAPE
command or the TMOUNT command to the TOPS-20 EXEC. These
commands:
1. Associate a system MT device with a logical set of
tape volumes and assign the MT device to the user,
giving him an access path to the tape volume set
2. Provide for queueing of user tape requests and thus
achieve better management of system resources
3. Standardize the operator interface to the magnetic
tape subsystem under TOPS-20
4. Give the operating system (and therefore the system
manager) more control over tape access
In addition, the MOUNT TAPE command lets the user specify
defaults to be used for tape processing. This section will
discuss the structure and operation of the MOUNT TAPE command.
5.1.1.2 File Set Name - An essential feature of tape access on
TOPS-20 will be the ability to reference a set of files on one
or more volumes of tape by a single handle, known as a "file
set name" or "setname". If an analogy is made between a tape
volume set and a structure containing one directory, then the
file set name of the tape corresponds to the name of the
structure. A user can reference files on a structure by
specifying merely the structure name and the file name, without
concerning himself with the physical makeup of the structure.
Access to tapes is simplified if a similar scheme is employed.
Another basis for the setname scheme is the possibility of a
tape cataloging system for TOPS-20. Under such a system, the
user can reference a labeled tape file by specifying the
setname and filename to the system. The catalog provides the
association between the setname and the volid list for that
volume set. Cataloging is not a goal for the initial
implementation of the tape project; however, it may be deemed
a desirable feature for a future release.
Labeled Tape Processing on TOPS-20 Page 18
5.1.1.3 Syntax of the MOUNT Command - Implementation of the
MOUNT command will proceed in two phases. The first step will
permit the user to request that one tape volume set or
structure be mounted; this is planned for Release 4. With the
advent of MDA, a superset of the first version of the command
will allow for specification of one or more related tape and/or
structure mounts within one MOUNT command. The full-fledged
version of the MOUNT command will have the following syntax:
@MOUNT mspec [mspec mspec ...]
Each "mspec" is a request for a particular media collection
(e.g., a tape volume set or a disk structure). Including more
than one mspec in a MOUNT command implies that the system is to
treat the set on an "all or nothing" basis. For example, if a
user wants to copy a file from a structure to a tape, having
either medium mounted without the other is useless. In this
case, the user would request in his MOUNT command that both
tape and structure be mounted. The request will be satisfied
when all necessary system resources become available.
Note that the user can specify a multi-media request by giving
a number of mspecs on the MOUNT command line.
IMPORTANT
Release 4 of TOPS-20 will support only one mspec per MOUNT
command. If it is desired to mount more than one medium, the
user should give one MOUNT command for each.
An "mspec" is defined as:
devtype setname: /switch ... /switch
The devtype field contains a keyword specifying which type of
medium is being mounted. This keyword is either TAPE or
STRUCTURE. The setname is a handle on the medium. For tapes,
the setname is the file set name of the file set. A tape
setname is from 1 to 6 "a" characters long, and it must be
enclosed in quotes if it contains any nonalphanumeric
characters or nontrailing blanks. The following significance
is attached to a tape setname:
o The ANSI and IBM tape labeling standards provide a field
in the file header and trailer labels termed "file-set
identifier" (ANSI) or "data set serial number" (IBM). The
intention of the standards is that the same value be
written in the file-set identifier field of every file in
the file set. A common practice is to use the volid of
the first volume in the set as the setname. TOPS-20 users
will be permitted to select their setnames when creating
volume sets.
o MOUNTR can use the setname in addition to the volume
identifier to determine whether or not a mounted tape
Labeled Tape Processing on TOPS-20 Page 19
satisfies an outstanding user request. Qualification
using the setname is selected by use of the /CHECK-SETNAME
switch of the MOUNT command.
o If the mount request is completed successfully, the EXEC
will define the setname as a logical name for the tape
device assigned to the user by MOUNTR.
o If no volume identifier list is given in the MOUNT
command, it will be assumed that the volume set contains
exactly one volume, and its volid is the same as the
setname. This feature is intended to make the "simple
case" as easy to specify as possible.
The EXEC processes the MOUNT TAPE command by composing an IPCF
message for a tape mount request and sending it to QUASAR. If
/NOWAIT was not used, the EXEC blocks until a response is
received from QUASAR. If the user types CTRL/C while the EXEC
is blocked, control returns to EXEC command level with the
request still outstanding. If /NOWAIT was specified, the EXEC
immediately prompts for another command. Concurrently, GALAXY
processes the mount request and (perhaps considerably later)
sends an IPCF reply to the EXEC. When the next command is
typed to the EXEC, the EXEC will display the response to the
mount request at the user's terminal.
When the EXEC receives the response from QUASAR, it will print
one of the following messages at the user's terminal. (For
documentation purposes, constant portions of the text responses
are shown in upper case, and variable elements are in lower
case. In practice, the constant text will be in upper and
lower case.)
[TAPE SET setname, VOLUME volid MOUNTED]
[setname: DEFINED AS device:]
The user's tape was mounted and it is now ready for access.
The EXEC tells the user the set name (logical name), the
identifier of the volume that was mounted, and the tape
device that was assigned by MOUNTR. The tape can be
accessed by either the device name or the logical name.
?error-message
REASON GIVEN BY OPERATOR: reason
For some reason (user error, operator refusal, insufficient
system resources, etc.) the mount request was not
satisfied. The last line of the above message will be
present only if the operator refused to honor the mount
request.
The following switches are valid for the MOUNT TAPE command:
/CHECK-SETNAME
Imposes the requirement that the file set identifier on
Labeled Tape Processing on TOPS-20 Page 20
the tape match the setname in the MOUNT command.
/CHECK-SETNAME is meaningful only for labeled tapes.
/DENSITY: value
Specifies the density of the tape being read or
written. The operating system must know the density in
order to allocate the system tape drive resources. If
this switch is omitted, the system default will be
used. Acceptable values are: 200, 556, 800, 1600, and
6250.
/DRIVE-TYPE: option
Indicates the type of drive to be used for the request.
Currently, the valid options are 9-TRACK and 7-TRACK,
with 9-TRACK being assumed if DRIVE-TYPE is not
specified. Only unlabeled tapes will be supported on
7-track drives.
/LABEL-TYPE: type
The label type identifies the type of label processing
(or lack thereof) to be performed by the system. The
following label types are defined:
1. ANSI - Labels and file structures conform to ANSI
standard; for interchange with non-TOPS-20 systems.
2. BYPASS - This type permits an enabled WHEEL or
OPERATOR to access any tape (labeled or unlabeled)
in the unlabeled mode.
3. EBCDIC - Labels and data are written in EBCDIC for
interchange with IBM systems.
4. TOPS-20 - Superset of ANSI standard for use within
TOPS-20 environments.
5. UNLABELED - No label processing or record
formatting is performed by the operating system
(similar to current MTA device access). This mode
cannot be used to access tapes that begin within a
valid VOL1 label.
A more comprehensive description of labeling standards
is given in section 10.0 of this specification.
/NEW
The user wishes to create a new volume set. Specifying
/NEW implies that:
1. /READ-ONLY and /CHECK-SETNAME are ignored if
present, and the /START switch will produce an
error if present.
Labeled Tape Processing on TOPS-20 Page 21
2. /WRITE-ENABLED is assumed.
3. If the tape set is labeled, the setname of the
volume set will become the setname given in the
MOUNT command.
/NOUNLOAD
Causes all tape volumes to remain on the drives when
they are released by a volume switch or termination of
the request. If /NOUNLOAD is not specified, TOPS-20
will unload volumes from the drives after use.
/NOWAIT
Return control immediately to EXEC command level. When
the response is received from QUASAR, a message will be
printed at the user's terminal. If /NOWAIT is not used,
the EXEC blocks until QUASAR responds.
/OPERATOR
Requests that the operator key in the volid list (see
/VOLIDS: switch). The /OPERATOR and /VOLIDS: switches
may not appear together.
/PROTECTION: value
Specifies the volume protection code (2 octal digits).
This code governs access to the volume by non-owners
(the owner always has full access). It is the sum of
any subset of the following permission values:
DP%RD (40) - Read files in file set
DP%CN (10) - Overwrite/modify files
DP%CF (04) - Append files to end of file set
The specified value will be stored in all volume header
labels that are written during this mount request.
Ignored if tape label type is not TOPS-20.
/READ-ONLY
Requests and insures that all volumes in the set will
be mounted without write rings to prevent accidental
erasure. This option is the default, unless the user is
writing a scratch volume set (/SCRATCH specified) or
creating a new volume set (/NEW specified), in which
case /WRITE-ENABLED is assumed.
/REMARK: "text"
The user provides a quoted text string that is printed
at the operator's terminal when the operator is
notified of the mount request.
/SCRATCH
Declares that the user wishes to access a scratch
volume set (presumably to write and then read a
temporary file). The volume set will remain in a
Labeled Tape Processing on TOPS-20 Page 22
"scratch" state when it is dismounted. No volid list
may be specified in this case, as the volumes will be
selected by the operator. /NEW and its implications are
assumed.
/START: option value
If the user knows which volume in the set contains the
information he wishes to access, he can save the system
the expense of searching for the data from the
beginning of the set with the /START switch. Either of
the following forms is permitted:
1. /START: NUMBER number
The number is the ordinal number of the volume
within the set.
2. /START: VOLID volid
The user specifies the volid of the first volume to
be mounted.
If this switch is not present, the first volume of the
list is assumed.
/VOLIDS: volid,...,volid
The system must be supplied with a list of tape volume
identifiers, or volids. This list may come from either
(but not both) of two sources: the user's MOUNT
command, or the operator. The user has three options
when making a mount request:
1. Omit the /OPERATOR and /VOLIDS: switches. The EXEC
will assume that the user is requesting a
single-volume tape set whose volume identifier
(volid) is the same as the setname.
2. Use the /OPERATOR switch, requesting that the
operator key in the volids of the volumes in the
set when the request is received by MOUNTR.
3. Give the /VOLIDS: switch with a volid list,
indicating explicitly the volumes that are to be
mounted.
Regardless of whether the user or the operator provides
the list of volids, that list must include the volids
of every tape that the user wishes to access in the
volume set (scratch tapes excepted). In addition, the
volids must represent consecutive volumes within the
set, and they must have the same order as the actual
volumes. It is not required that the list include all
volumes that compose the volume set; however, any
volumes not specified will not be accessible. Note
that, when accessing an unlabeled tape or tape set, the
operating system makes no attempt to determine whether
the correct volumes have been mounted, as no
Labeled Tape Processing on TOPS-20 Page 23
identifcation is assumed to be recorded on an unlabeled
tape.
Note that a special case of option 3, above, is to
supply no volume identifiers to the /VOLIDS: switch.
This implies that the user is creating a new tape set
(/NEW or /SCRATCH must be given), and all volumes will
be assigned by the operator as they are needed.
If the user is creating a new volume set using the
/OPERATOR switch or writing a file that extends beyond
the end of the last volume of the specified set, the
system will automatically request that the operator
mount a scratch volume to accomodate the request. The
system will rewrite the volume labels of the tape to
indicate that the tape is now owned by the user, and
the program will resume writing its file. The user
program can obtain the volid of the new tape by issuing
the appropriate monitor call.
/WRITE-ENABLED
Requests and insures that all volumes in the set are
mounted with write rings to permit write access
contingent upon file and volume access codes,
expiration date, etc. If both /WRITE-ENABLED and
/READ-ONLY are specified, the more recently specified
switch will prevail. In the absence of the /NEW,
/SCRATCH, and /WRITE-ENABLED switches, /READ-ONLY is
assumed.
Labeled Tape Processing on TOPS-20 Page 24
5.1.2 The DISMOUNT TAPE Command -
This command informs TOPS-20 that access to the volume set is
no longer needed by the user, and that the resources associated
with the set are to be returned to the system pool.
The DISMOUNT TAPE command has the following format:
DISMOUNT TAPE (NAME) name
where "name" is either a physical tape device of the form MTn:,
a logical name defined from the the setname specified in the
MOUNT command, or any other logical name associated with a
system tape device. If the dismount operation is successful
and a logical name was given, the EXEC will undefine that
logical name. If the user has an open JFN on the tape, the
EXEC will print the message
?Device MTn: open on JFN n
%Close JFN?
If the user responds YES or just presses the RETURN key, the
EXEC will close the JFN and proceed with the dismount
operation. If a NO response is given, nothing is affected and
the user is returned to command level.
The DISMOUNT TAPE command is valid only when the system is
operating with tape drive allocation enabled.
Labeled Tape Processing on TOPS-20 Page 25
Several of the currently implemented EXEC commands will grow
new functions and interpretations as described below.
5.1.3 INFORMATION (ABOUT) MOUNT-REQUESTS -
This command will interface with QUASAR to provide the user
with the status of outstanding requests for device mounts by
users in the system. A sample display might look like this:
SETNAME VOLUME STATUS TYPE JOB USER
------ ---- ------ ------ --- ----
FOO FOO Waiting 9/1600 9 R.ACE
NEWSET Scratch Waiting 9/800 23 MUMBLE
MASTER 005062 MTA1: 9/800 23 MUMBLE
CRUFTY Aborted 7/556 41 ENGEL
The information returned by the command is as follows:
SETNAME The name of the tape set being accessed.
VOLUME The volume identifier of the tape; if the user is
requesting a scratch tape that has not yet been
mounted, the word "Scratch" will appear in this column
STATUS Either "Waiting" (user is waiting for tape to be
mounted), "Aborted" (error occurred during volume
switch and the user hasn't DISMOUNTed the tape yet),
or, if the request is currently using a tape drive, the
drive name is displayed
TYPE Drive type and density (e.g., 9/1600 would represent a
9-track drive operating at 1600 BPI)
JOB The job number of the user who made the request
USER The name of the user who made the request
If it is desired to restrict the display to requests for only
one user, the following switch can be placed after the TAPE
keyword:
/USER: [username]
If the username is omitted, it will default to the logged-in
user's user name.
Labeled Tape Processing on TOPS-20 Page 26
5.1.4 INFORMATION (ABOUT) VOLUMES (OF TAPE) Name -
This command tells the user the current volume-identifier list
for the specified tape set (the name argument is the physical
tape device or a logical name). This command is essential
because TOPS-20 provides the feature of automatically assigning
tape volumes to a user job as they are needed.
The EXEC response to this command will look like:
VOLUMES OF TAPE SET setname: volid,...,volid
5.1.5 TMOUNT -
To provide a smooth transition from a Release 3 system to a
Release 4 system with tape processing, the existing TMOUNT
command will continue to be supported. The scope of TMOUNT
will be somewhat limited with respect to the new MOUNT command;
if additional functionality is desired, MOUNT must be used.
Eventually, TMOUNT will be phased out of TOPS-20.
The EXEC programming for TMOUNT will be changed to interface it
to QUASAR. The only change in the user interface will be that
the user will be assigned an MT device instead of an MTA.
As TMOUNT relies upon MOUNTR to allocate tape drives and
supervise tape processing, an installation choosing to disable
the tape drive allocation system (see Section 5.4) will
sacrifice the services of TMOUNT.
5.1.6 Canceling Tape Mount Requests -
To permit the user to cancel outstanding tape mount requests,
an extension will be made to the EXEC CANCEL command. This
command will have effect only upon requests that have not yet
successfully mounted any volumes; i.e., a request that is
using a mounted tape or waiting for a tape mount as a result of
a volume switch may not be canceled. The form of the CANCEL
MOUNT command is:
CANCEL (REQUEST TYPE) MOUNT setname
A typical response from QUASAR might be:
[1 mount request canceled]
Labeled Tape Processing on TOPS-20 Page 27
5.1.7 ASSIGN -
If the installation chooses to enable the new TOPS-20 tape
processing software (with the appropriate SETSPD command), user
tape accesses must be made via the MOUNT command, not the
ASSIGN command. Note, however, that tape drives that are SET
UNAVAILABLE by the operator (see section 5.2.3.2) can be
ASSIGNed by user jobs. To take advantage of the security,
operator control, and accounting afforded by MOUNTR, it is
recommended that the installation set all drives AVAILABLE
unless they require maintenance.
5.1.8 BACKSPACE -
Unlabeled tapes: No change from Release 3 operation.
Labeled tapes: The RECORDS function is not supported and will
return an error.
5.1.9 DEASSIGN -
MTA devices: No change from Release 3 operation.
MT devices: Releases the device if it was ASSIGNed. It is
preferred, however, that the DISMOUNT TAPE command be used to
release MT devices.
5.1.10 EOF -
Unlabeled tapes: No change from Release 3 operation.
Labeled tapes: The EXEC looks for a JFN open to the specified
device. If it finds one, it closes it (thus forcing the
monitor to write end-of-file labels). If no open JFN is found,
the EXEC returns an error.
5.1.11 REWIND -
Unlabeled tapes: No change from Release 3 operation.
Labeled tapes: Rewinds to beginning of volume set. If
/CURRENT-VOLUME-ONLY switch is given, rewinds to the beginning
of the current volume.
Labeled Tape Processing on TOPS-20 Page 28
5.1.12 SKIP -
Unlabeled tapes: No change from Release 3 operation.
Labeled tapes: The RECORDS function is not supported and will
return an error. The LEOT function will position the device
after the end of the last file of the volume set.
5.1.13 UNLOAD -
MTA devices: No change from Release 3 operation.
MT devices: Not legal; returns an error.
Labeled Tape Processing on TOPS-20 Page 29
5.1.14 Scenarios -
In an attempt to add some coherence to the volume (no pun
intended) of information in this specification, some examples
will be presented here, hopefully illustrating how a particular
goal might be accomplished under the new tape processing
system.
5.1.14.1 Creating a File on Labeled Tape -
In this example, the user wishes to create a file on a set of
tapes supplied by the installation. The following dialogue
appears at the user's terminal:
@MOUNT TAPE MASTER: /DENSITY: 1600 /DRIVE-TYPE: 9-TRACK -
/LABEL-TYPE: TOPS-20 /NEW /PROTECTION: 77 /NOUNLOAD
[Tape set MASTER, volume 002001 mounted]
[MASTER: defined as MT2:]
@RUN WRMAST
.
.
.
@!Now find out the names of the volumes in the set!
@INFORMATION (ABOUT) VOLUMES (OF TAPE) MASTER:
Volumes of tape set MASTER: 002001,002002,002003
@DISMOUNT TAPE (NAME) MASTER:
@
Notes:
1. The user is creating a new volume set on scratch tapes
that are being supplied by the operator as they are
needed.
2. The /WRITE-ENABLED switch is implied by /NEW.
3. The volumes of the set will remain on the drives when
they are released by the user, as requested by the
/NOUNLOAD switch.
5.1.14.2 Reading a File on Labeled Tapes -
Suppose, now, that the user wishes to read the file he created
in the previous example. He might type,
@MOUNT TAPE OLDMST: /DENSITY: 1600 /DRIVE-TYPE: 9-TRACK -
/LABEL-TYPE: TOPS-20 /VOLIDS: 002001,002002,002003
[Tape set OLDMST, volume 002001 mounted]
[OLDMST: defined as MT0:]
Labeled Tape Processing on TOPS-20 Page 30
@RUN RDMAST
.
.
.
@DISMOUNT TAPE (NAME) OLDMST:
@
5.1.14.3 Reading a Tape from an IBM System/370 -
The user wishes to read a file named ACCTS-PAYABLE that resides
on a set of IBM labeled tapes whose volume identifiers are
known to be: 000442, 000443, 000500. The user knows that the
file begins on volume 000443.
@MOUNT TAPE INPUT: /VOLIDS: 000442,000443,000500 -
/START: VOLUME 000443 /LABEL-TYPE: EBCDIC
[Tape set INPUT, volume 000443 mounted]
[INPUT: defined as MT5:]
@RUN ACTPAY
.
.
.
@DISMOUNT TAPE (NAME) INPUT:
@
By telling the system to start looking for the file on the
second volume of the set, the user saved time by eliminating an
unnecessary search of the first volume. Note that the
following alternate form of the /START: switch would have the
same effect in this example:
/START: NUMBER 2
5.1.14.4 Operator-Supplied Volume Identifiers -
This is a sequence that might appear in a batch job. The
operator is given a run sheet for the job, and written on the
sheet is the list of volids that compose the job's input tape
set. When the tape mount message is printed at the CTY, the
operator enters the volids as they appear on the run sheet.
@MOUNT TAPE INPUT: /DENSITY: 800 /LABEL-TYPE: ANSI -
/READ-ONLY /OPERATOR -
/REMARK: "VOLUMES ARE LISTED ON JOB RUN SHEET"
[Tape set INPUT, volume ABC mounted]
[Volume identifiers: ABC, DEF]
[INPUT: defined as MT1:]
@RUN PROG
Labeled Tape Processing on TOPS-20 Page 31
.
.
.
@DISMOUNT TAPE (NAME) INPUT:
@
5.1.14.5 Initializing a Tape with CHECKD -
CHECKD is described in Section 5.3.
@CHECKD
CHECKD>INITIALIZE (TAPE VOLUME) 001234 (LABEL TYPE) -
TOPS-20 /DENSITY: 800
[Waiting for tape to be mounted]
[Tape initialized]
CHECKD>EXIT
@
Labeled Tape Processing on TOPS-20 Page 32
5.2 Operator Interface to TOPS-20
Release 4 of the GALAXY system features the OPR/ORION scheme,
which implements a more homogeneous interface between the
operator and TOPS-20. The new tape processing system will
utilize this facility and, where required, conform to its
protocols and message formats.
5.2.1 Automatic Volume Recognition -
The AVR feature permits the operator to mount labeled tapes
without the need to identify them to the system with a keyin.
Volume identifiers for unlabeled tapes must be provided to the
system with a command described in a subsequent section.
When a tape is placed on a drive that has AVR enabled (see AVR
Control section, below) and the drive is brought to a "ready"
state, the hardware notifies the monitor of this event, and the
monitor in turn tells MOUNTR, who rewinds the tape and inspects
the volume for label information (see Section 10.1.7). If the
tape is determined to be labeled, the system extracts the
volume identifier from the VOL1 label and tries to satisfy an
outstanding user mount request with this volume. If no user is
currently requesting the volume, its volume identifier is
remembered, and the tape may be used to satisfy a request that
is submitted at some time in the future (i.e. the tape has
been prestaged by the AVR operation).
If no valid label is found on the tape, the system simply
remembers that an unlabeled tape has been placed on the drive.
The operator may subsequently manually identify this volume to
the system with a keyin.
5.2.2 Informational Messages to the Operator -
These messages will be printed at the CTY through the WTO and
WTOR mechanisms of OPR/ORION. Unless otherwise indicated, all
messages are time stamped and require no operator action.
5.2.2.1 Tape Mounted - A tape has been mounted on a drive with
AVR enabled.
--TAPE MOUNTED--
MTAn: VOLUME volid label-type TAPE MOUNTED
Labeled Tape Processing on TOPS-20 Page 33
5.2.2.2 Tape Assigned To User Job - A tape drive containing an
identified volume has been assigned to a user job.
--TAPE VOLUME IN USE--
MTAn: VOLUME volid IN USE BY USER user JOB job# LINE line#
5.2.2.3 Tape Released By Job - A user job has released control
of a tape; the drive is now under system control.
--TAPE DRIVE RELEASED BY USER--
MTAn: VOLUME volid - disposition
Where disposition is either of:
1. REMAINING MOUNTED ON DRIVE
2. DISMOUNT AND SAVE
5.2.2.4 Incorrect Write Protection - A user requested a volume
write-enabled and the volume was mounted write-protected, or
vice versa. TOPS-20 has unloaded the volume from the drive.
--TAPE WRITE PROTECT ERROR--
MTAn: VOLUME volid
order WRITE RING AND REMOUNT TAPE
Where "order" is either INSERT or REMOVE.
5.2.2.5 Write-protected Scratch Tape Mounted - The operator
has mounted a write-protected scratch tape and the system has
unloaded it from the drive.
--NO RING IN SCRATCH TAPE--
UNLOADING DRIVE MTAn: VOLUME volid
REMOUNT SCRATCH TAPE WITH WRITE RING
5.2.2.6 User Mount Request Received By System - A user has
submitted a tape mount request to the system. The system
informs the operator of the volumes of the set that the user is
requesting.
--TAPE SET REQUEST--
VOLUME SET setname, USER user JOB job# LINE line#
USER'S REMARK: remark
VOLUMES: volid,volid,...
Labeled Tape Processing on TOPS-20 Page 34
5.2.2.7 User Mount Request Needs Volids - This message is
identical to the previous message except that the VOLUMES:
line of the message is replaced by the text
RESPOND WITH VOLUME-ID LIST
This is a WTOR message, meaning the operator must reply to it.
The user has specified /OPERATOR in his MOUNT command,
requesting that the operator supply the volid list for the
request. It is assumed that the operator has been forewarned
via a job run sheet or similar mechanism. Response: either of
the following:
VOLUMES volid1,volid2,...,volidn
REFUSE reason
Nonalphanumeric volids must be enclosed in quotes (").
5.2.2.8 User Tape Set Request Complete - This is the companion
to the above two messages; it indicates that the user has
finished using the tape volume set.
--TAPE SET REQUEST COMPLETE--
COMPLETED REQUEST setname, USER user JOB job# LINE line#
SAVE VOLUMES volid,volid,...
5.2.2.9 User Requires A Tape To Be Mounted - This message
requires operator action. It is disposed of in either of the
following ways:
1. The operator mounts the desired tape and the tape
conforms to the specifications of the request. No
keyed-in reply is required in this instance.
2. The operator, for any reason, cannot or refuses to
satisfy the user's request. A refusal response to
this message must be keyed in.
--MOUNT TAPE--
MOUNT label-type VOLUME volid, density BPI, mode
USER user JOB job# LINE line#
The mode is either READ-ONLY or WRITE-ENABLED. If the user is
requesting a scratch tape, the "VOLUME volid" segment of the
message will be replaced by "SCRATCH TAPE". Response:
REFUSE reason
The response is keyed in if and only if the operator chooses
not to satisfy the request. The reason is a text message that
Labeled Tape Processing on TOPS-20 Page 35
will be passed on verbatim to the user job.
5.2.2.10 Drive Does Not Support Density - A user has requested
an unlabeled tape mount at density X and a tape with that volid
has been mounted on a drive that does not support density X.
The system unloads the tape and tells the operator to mount it
on a drive that supports density X.
--REMOUNT TAPE VOLUME--
MTAn: VOLUME volid BEING UNLOADED
REMOUNT VOLUME volid ON density BPI DRIVE
5.2.2.11 Tape Drive Has Been Unloaded - The system is
informing the operator that a tape has been unloaded from a
drive.
--TAPE DRIVE UNLOADED--
MTAn: VOLUME volid UNLOADED
%USE THE UNLOAD COMMAND TO UNLOAD TAPE DRIVES
The last line is a warning message that appears only if the
operator unloads the drive manually (as opposed to using the
UNLOAD command to OPR).
5.2.2.12 Change In Tape Drive Availability - The operator has
set a tape drive available or unavailable with the SET
TAPE-DRIVE commnad to OPR.
--TAPE DRIVE SET status--
MTAn: SET status FOR USE BY SYSTEM
%DRIVE IS CURRENTLY IN USE BY USER user JOB job# LINE line#
"status" is either AVAILABLE or UNAVAILABLE. The last line is
a warning that appears only if the operator is setting
unavailable a drive that is currently in use by a user job.
The command is deferred until the user releases the drive.
5.2.2.13 Tape I/O Operation Timed Out - A tape I/O JSYS issued
by MOUNTR took too long to execute. This is an informational
message that could indicate faulty hardware or monitor
software.
--TAPE DRIVE TIMED OUT--
MTAn: OPERATION TIMED OUT
Labeled Tape Processing on TOPS-20 Page 36
5.2.2.14 Error Positioning Tape - An error was reported by the
monitor to MOUNTR as a result of a tape positioning operation
(e.g. backspace record). This could indicate a bad tape or
faulty hardware.
--TAPE POSITIONING ERROR--
MTAn: POSITIONING OPERATION FAILED
5.2.2.15 Label Write Error - TOPS-20 encountered an error
condition (faulty hardware or bad magtape) while writing volume
header labels on a tape. The appropriate operator action at
this point might be to initialize another volume to the same
density, label-type, and volid; then this volume could be used
by the user program instead of the one that incurred the error.
--TAPE ERROR WRITING LABELS--
ERROR WRITING LABELS ON MTAn: VOLUME volid
5.2.2.16 Bad IPCF Message From GALAXY Task - MOUNTR received
an unrecognized or incorrectly-formatted IPCF message from a
GALAXY component. This display is informational only, and no
operator action is required; the problem should be brought to
the attention of a software specialist.
--MOUNTR SYSTEM TASK ERROR--
BAD IPCF MESSAGE RECEIVED FROM component
The "component" is either ORION or QUASAR.
5.2.3 Unsolicited Operator Keyins -
This section describes commands that are keyed in directly to
OPR and are not responses to system WTOR messages.
5.2.3.1 AVR Control - The operator can control the automatic
volume recognition feature of the system with the commands,
ENABLE AUTOMATIC-VOLUME-RECOGNITION (FOR) object
DISABLE AUTOMATIC-VOLUME-RECOGNITION (FOR) object
Where "object" is either of:
TAPE-DRIVE MTAn:
ALL-TAPE-DRIVES
If a tape drive is operating with AVR enabled, then MOUNTR,
upon being informed by the monitor that a tape has just been
Labeled Tape Processing on TOPS-20 Page 37
placed on the drive, will automatically attempt to identify the
volume on the drive by reading the first record on the tape.
If AVR is disabled, the operator must give the MOUNT TAPE-DRIVE
command to inform MOUNTR that the tape on the drive is
available for processing.
It is expected that the normal mode of system operation will be
with AVR enabled on all tape drives. One possible use of
disabling AVR is to avoid runaway when initializing virgin
tapes. Use of these commands in no way affects the security of
the system; it merely controls when tapes are identified.
Since labeling is not supported for 7-track drives, TOPS-20
will ignore any attempts to enable AVR on these drives.
5.2.3.2 Tape Drive Availability Control - If it is desired to
exclude a tape drive from normal system resource scheduling
(e.g. drive broken), the operator may issue the command:
SET TAPE-DRIVE MTAn: UNAVAILABLE reason
Note that the operator must type a reason (an arbitrary string
of text) that describes why the action was taken. This command
causes an entry to be made in the SYSERR file, and the reason
is included in this entry.
The complementary command to restore a drive is:
SET TAPE-DRIVE MTAn: AVAILABLE (FOR USE BY SYSTEM)
The status (available or unavailable) of each drive is
remembered in a file, and it is preserved across system
startups. Thus, a drive set unavailable remains that way until
it is explicitly set available again.
5.2.3.3 Manual Volume Identification - There are three cases
where the operator must inform the system of the identity of a
tape volume:
1. An unlabeled tape is mounted
2. A tape is mounted on a drive with AVR disabled
3. A user is requesting a scratch tape
The MOUNT command for tape drives accomplishes this. All forms
of this command require that the specified drive contain a tape
that is not associated with any user job, and that the drive be
in the "ready" state.
The MOUNT command for tape drives has two forms:
Labeled Tape Processing on TOPS-20 Page 38
Form 1: MOUNT VOLUME-ID volid (ON) MTAn:
Form 2: MOUNT SCRATCH-TAPE [/VOLUME-ID: volid] (ON) MTAn:
Form 1 serves to supply the system with the volume-identifier
of the tape. This form is used to identify an unlabeled tape
(case 1, above) or a tape on a drive with AVR disabled (case
2). If the specified drive has AVR disabled, the system "takes
the operator's word" that the volid is correct, and label
checking is performed if and when the tape drive is associated
with a user request that is not calling for the tape in BYPASS
mode.
Form 2 permits the operator to declare a volume to be a scratch
volume. A scratch volume will be requested by a user who is
writing a file on tape that extends beyond the last volume in
the set (i.e. the user is implicitly asking the operator to
assign a new volume to him). TOPS-20 will not permit the
operator to declare an unexpired labeled tape to be a scratch
volume, so if the system is unaware of the true identity of a
volume (e.g AVR is disabled for the drive), it will reject a
Form 2 MOUNT command. To supply the volid of an unlabeled tape
and simultaneously declare it to be a scratch tape, the
/VOLUME-ID: switch may be used.
If the system accepts a MOUNT command, it attempts to satisfy a
user request with the volume that was just identified. If this
cannot be done, the tape is remembered as a prestaged volume.
5.2.3.4 Unloading Tape Drives - Once an operator loads a tape
onto a drive, the system must have full control of that drive
until it unloads the tape. If the operator wishes to unload a
mounted tape (perhaps to replace a prestaged, unused tape with
another tape to satisfy a pending request), he must give the
following command:
UNLOAD (TAPE-DRIVE) MTAn:
If the tape is not in use by a user, the system will unload it
from the drive, freeing the drive for another tape. If the
tape is in use, the command is rejected.
5.2.3.5 Obtaining Tape Drive Parameters - It is at times
necessary for an operator to obtain information about the drive
types and supported densities of the tape drives on the system.
The following commands serve this purpose:
SHOW PARAMETERS ALL TAPE-DRIVES
SHOW PARAMETERS TAPE-DRIVE MTAn:
Sample output from this display follows:
Labeled Tape Processing on TOPS-20 Page 39
DRIVE TYPE DENSITIES
----- ---- ---------
MTA0: 9-TRACK 200, 556, 800, 1600
MTA1: 9-TRACK 200, 556, 800, 1600
MTA2: Set unavailable for use
MTA3: 9-TRACK 1600, 6250
5.2.3.6 Obtaining Tape Drive Status - The operator may at any
time obtain a current status display of the system tape drives
by giving either of the commands,
SHOW STATUS ALL TAPE-DRIVES
SHOW STATUS TAPE-DRIVE MTAn:
A display with the following headings will appear:
DRIVE VOLUME TYPE DEN SCR AVR STATUS
----- ------ ---- --- --- --- ------
The information displayed in each column is:
DRIVE - The tape drive name (e.g. MTA1:)
VOLUME - The volid of the tape (a string from 1 to 6 "a"
characters long identifying the volume to the system)
TYPE - The label type of the volume (one of the following:
Unlabeled, ANSI, EBCDIC, or TOPS-20)
DEN - The density of the volume (shown only if the label
type is ANSI, EBCDIC, or TOPS-20)
SCR - Either "Yes" or "No", indicating, respectively, that
the volume is or is not a scratch volume
AVR - Either "Yes" or "No", describing whether or not
Automatic Volume Recognition is enabled for the drive.
STATUS - Will be one of the following:
SET UNAVAILABLE FOR USE
NOT ACCESSIBLE BY TOPS-20
UNLOADED
LOADED
IN USE BY USER user JOB job# LINE line#
The VOLUME, TYPE, DEN, and SCR columns will be empty if the
drive is not loaded.
Labeled Tape Processing on TOPS-20 Page 40
5.2.3.7 Displaying the User Tape Mount Request Queue - The
operator may examine the tape mount request queue by giving the
following command to OPR:
SHOW QUEUES MOUNT-REQUESTS
The display produced is identical to that of the EXEC command,
INFORMATION (ABOUT) MOUNT-REQUESTS
This command is described in section 5.1.3.
5.2.4 TMOUNT Interface - The current operator interface
supported by OPLEAS to implement the TMOUNT command will no
longer be used. Requests for tape mounts made through TMOUNT
will be incorporated into the standard request queueing and
operator interface schemes that service the MOUNT command. The
operator will not need to distinguish requests made with TMOUNT
from ones made with MOUNT.
Labeled Tape Processing on TOPS-20 Page 41
5.3 CHECKD
5.3.1 Purpose - The CHECKD program will permit a system
administrator to initialize labeled tapes for use in a TOPS-20
tape processing environment. A labeled tape is initialized by
writing system volume labels and file label groups framing an
empty, expired file. Upon the first use of a scratch tape, its
labels will be implictly rewritten by the operating system to
reflect any change in its status. If is desired to change the
density or label type of a labeled tape, the tape must be
initialized at the selected density with CHECKD, thereby
destroying its current contents. Also provided will be a
command to read a tape and print any label information at the
user's terminal.
It might be desirable for the installation to perform the tape
initialization operation, to reduce the likelihood of more than
one volume having any given volume identifier.
5.3.2 Use of CHECKD to Initialize Tapes - The user invokes
CHECKD by typing CHECKD at the EXEC prompt. CHECKD will prompt
the user for a command, which may be one of those described
below.
5.3.2.1 Displaying Tape Label Information -
SHOW (LABEL INFORMATION FOR TAPE VOLUME) volid
This command directs CHECKD to call for the requested volume,
examine it for labels, and produce the following display at the
user's terminal:
LABEL TYPE: label type
DENSITY: density
VOLUME ID: volume-identifier
OWNER: owner
EXPIRATION DATE: expiration-date
The label type will be ANSI, EBCDIC, TOPS-20, or UNLABELED.
For TOPS-20 labeled tapes, the owner's name will be displayed.
If CHECKD could not identify the tape, it types:
% TAPE COULD NOT BE READ
This may occur because the drive cannot read at the density of
the tape, a parity error has been detected, or no information
is recorded on the tape.
If the density of a tape is known, the following switch should
be specified after the volid in the SHOW command:
Labeled Tape Processing on TOPS-20 Page 42
/DENSITY: density
This will insure that the tape is mounted on a drive that
supports the specified density.
The SHOW command instructs TOPS-20 to call for the tape in the
write-enabled mode. Should the user wish to initialize the
tape after examining its labels, this feature makes it possible
to do so without unloading the tape to put a ring in it. The
SHOW command does NOT write on or alter the tape in any way.
5.3.2.2 Initializing a Tape -
To initialize a tape, the following command is given:
INITIALIZE (TAPE VOLUME) volid (LABEL TYPE) type -
[switch switch ...]
FIELD CONTENTS
----- --------
volid A volume identifier from one to six "a" characters in
length. Any non-alphanumeric characters within the
volid must be preceded by the quoting character (^V).
type The label type, one of the following: ANSI, EBCDIC, or
TOPS-20.
switch One of the following:
/DENSITY: density - Specifies the density of the tape;
if omitted, the system default will be used.
/OWNER: username - For TOPS-20 volumes only. The name
of the user who will own the tape; if omitted, the
tape will be a scratch tape.
If the command is successfully specified, CHECKD requests that
the operator mount the tape. When this is done, CHECKD
initializes the tape and prompts for another command.
Note that no EXEC MOUNT command is required when using the SHOW
and INITIALIZE commands. CHECKD automatically sends the mount
request to QUASAR.
5.3.3 Labels Written by CHECKD -
Labeled volumes initialized by the CHECKD program contain:
1. A beginning-of-volume label group (VOL1)
Labeled Tape Processing on TOPS-20 Page 43
2. A beginning-of-file-section label group (HDR1)
3. Two tape marks framing an empty file
4. An end-of-file label group (EOF1)
5. A double tape mark, specifying logical end-of-tape
The volume header label (VOL1) is composed as specified in
Section 10.1.1. The accessibility character is set to a space.
The beginning- and end-of-file label groups contain the
following fields and values in the first file-header-label
(HDR1) and first end-of-file label (EOF1):
File Identifier (CP 5-21) 'DUMMY-FILE-0000'
File-set Identifier (CP 22-27) Copy of Volume-id
File Section Number (CP 28-31) '0001'
File Sequence Number (CP 32-35) '0001'
Generation Number (CP 36-39) '0001'
Generation Version Number (CP 40-41) '00'
Creation Date (CP 42-47) Date of Init.
Expiration Date (CP 48-53) ' 00000'
Accessibility (CP 54) space
Block Count (CP 55-60) '000000'
System Code (CP 61-73) 'DECSYSTEM20 '
Reserved (CP 74-80) spaces
When an initialized tape volume is first written by a user
program, its system header label group will be updated and
rewritten to reflect the new status of the volume.
Labeled Tape Processing on TOPS-20 Page 44
5.4 SETSPD
5.4.1 Enabling Tape-drive Allocation - A new command may be
placed in the installation n-CONFIG.CMD file to control the
mode of tape processing being performed by the system:
ENABLE TAPE-DRIVE-ALLOCATION
Not enabling tape drive allocation will cause the tape
processing system to mimic that of TOPS-20 Release 3. If drive
allocation is enabled, the system will operate in accordance
with the new functionality described in this specification.
The effect of the ENABLE TAPE-DRIVE-ALLOCATION command will be
to set the SF%TVV monitor flag using the SMON JSYS. This flag
is interrogated by MOUNTR when it starts up, and its setting at
this time determines the mode of system operation until the
next reload.
5.4.2 Setting Tape-Processing Defaults - If tape-drive
allocation is enabled, the system manager may set up certain
default values that apply to tape-mount requests. The
following new commands are supported:
TAPE-MOUNT-DEFAULT DENSITY density
TAPE-MOUNT-DEFAULT DRIVE-TYPE drive-type
TAPE-MOUNT-DEFAULT LABEL-TYPE label-type
"density" is one of: 200, 556, 800, 1600, 6250
"drive-type" is either: 7-TRACK or 9-TRACK
"label-type" is one of: UNLABELED, ANSI, EBCDIC, or TOPS-20
Note that these commands are meaningful only if the ENABLE
TAPE-DRIVE-ALLOCATION command also appears in the CONFIG file.
If defaults are not established via SETSPD commands, the
following values are assumed:
DENSITY: 1600
DRIVE-TYPE: 9-TRACK
LABEL-TYPE: UNLABELED
Labeled Tape Processing on TOPS-20 Page 45
5.5 System Files
Using the new tape processing scheme will add two files to the
PS:<SYSTEM> directory:
PS:<SYSTEM>TAPNAM.TXT
This is a file that contains a text string up to 10
characters long that identifies the installation. When
MOUNTR writes a volume header label group on a labeled
tape, it incorporates this string into the VOL1 label.
This file should be created as a part of the standard
software installation procedure, in a fashion similar to
that of creating the MONNAM.TXT file (i.e., COPY TTY: (TO)
TAPNAM.TXT).
PS:<SYSTEM>DEVICE-STATUS.BIN
This file contains information regarding the status (e.g.
device available indicators) of mountable devices. It is
created and maintained entirely by MOUNTR; there is no
need for the installation to concern itself with this file.
5.6 Software Products
5.6.1 DUMPER - Information in this section is not available at
this time.
5.6.2 USAGE - All TOPS-20 programs affiliated with the
processing of USAGE file information must change to accomodate
modifications to the magnetic tape USAGE entries required by
this project.
5.6.3 TOPS-10 Compatibility Package (PA1050) - There are no
planned changes to provide compatibility with TOPS-10 label
UUOs.
Labeled Tape Processing on TOPS-20 Page 46
6.0 RELIABILITY/AVAILABILITY/SERVICABILITY (RAS)
6.1 Failures Within the Product
6.1.1 Off-line Units - In Release 3 and earlier systems, a
tape drive that drops off-line (i.e. enters a state that
requires operator intervention to restore software access to
the drive) may be placed back on-line with few adverse affects
on the user program. Under the new system, a drive coming
on-line must be validated before any use of the tape is
permitted. This means that if a drive goes off-line in the
middle of a job, the next user I/O request to that drive will
fail, returning an error code indicating that a device failure
has occurred. The only action permitted at this point is to
close the JFN and DISMOUNT the tape.
6.1.2 Tape Security - The volume and file validation
procedures provide additional data security not previously
available on TOPS-20 systems. System managers may also keep
better track of tapes assigned to programmers and available
scratch tapes.
6.2 Failures Within the Total Environment
6.2.1 Hardware Maintenance Support - The ability to exclude
tape drives from system use will provide Field Service with a
way to isolate drives from general system use while keeping
them available to hardware diagnostic programs.
Use of the tape drive availability controls will result in the
logging of special informational messages in the system error
(SYSERR) file. The formats of these messages appear on the
following page.
Labeled Tape Processing on TOPS-20 Page 47
WORD # BIT POS CONTENTS
------ ------- --------
0 0-8 Code for Configuration Status Change (115)
9-16 Reserved
17 1 (Entry recorded by TOPS-20)
18-23 Header Format Version (1)
24-26 Header length (4)
27-35 Entry length (excluding header); varible
1 0-35 Date and time entry was generated
2 System uptime at time of entry
0-17 Number of days
18-35 Fraction of day
3 0-35 Processor serial # where entry was recorded
4 0-11 Reserved
12-17 Operation performed:
0 = Attach Massbus Device (SET AVAILABLE)
1 = Detach Massbus Device (SET UNAVAILABLE)
18-35 Reserved
5 0-12 Reserved
13-17 Channel type
18-30 Reserved
31-35 Unit type
6 0-35 Logical device name in SIXBIT (e.g. MTA3)
7 Physical device information from MTOPR
0-5 Channel #
6-11 Controller #
12-17 Unit #
18-35 Unit serial #
8 0-17 Reserved
18-35 Offset from beginning of entry to ASCIZ text
describing why device was SET UNAVAILABLE (5)
or 0 for SET AVAILABLE
9-ON Reason message from operator (in ASCIZ, present
only for SET UNAVAILABLE entries)
Words 0 through 3 of each entry contain the standard SYSERR
entry header. The remainder of the entry is a function of the
entry code. Note that the SYSERR entries for both SET
AVAILABLE and SET UNAVAILABLE share the same code number (115);
only the operation differs. Also, the ASCIZ reason text will
be logged by TOPS-20 only for SET UNAVAILABLE events.
For further information and background regarding SYSERR
entries, the reader is referred to the DECSYSTEM-20 Error
Detection, Recovery and Reporting Reference Manual.
Labeled Tape Processing on TOPS-20 Page 48
7.0 PACKAGING AND SYSTEM GENERATION
7.1 Distribution Media
It is expected that the following programs will be changed as a
result of the tape processing project:
DUMPER PLEASE SETSPD
EXEC MOUNTR TOPS-20
OPLEAS QUASAR CHECKD
ORION OPR
7.2 SYSGEN Procedures
The SYSGEN procedures for building and installing the tape
processing system will not be changed significantly.
Labeled Tape Processing on TOPS-20 Page 49
8.0 DOCUMENTATION
It is expected that the following existing manuals will have to
be changed as a result of this project:
MONITOR CALLS REFERENCE MANUAL
DECSYSTEM-20 USER'S GUIDE
OPERATOR'S GUIDE
DECSYSTEM-20 SOFTWARE INSTALLATION GUIDE
DECSYSTEM-20 ADVANCED SYSTEM COMMANDS
DECSYSTEM-20 SYSTEM MANAGER'S GUIDE
In general, all documentation dealing with the use of magnetic
tapes requires updating to reflect the changes in system
interfaces engendered by this project.
8.1 Monitor Calls Reference Manual
The Monitor Calls Reference Manual must include documentation
for all new JSYSs that are implemented and any functional
additions to existing JSYSs. This topic is discussed in detail
in another specification.
8.2 DECSYSTEM-20 User's Guide
The User's Guide must describe how to mount a tape volume or
volume set to access its contents. This will include a
description of the new EXEC commands as described in Section
5.1.
8.3 Operator's Guide
The Operator's Guide must describe the operator interfaces
specified in Section 5.2. An operator may also be required to
be know how to use the CHECKD program to initialize tapes.
8.4 DECSYSTEM-20 Software Installation Guide
This manual should document the new SETSPD commands. It must
also describe how to create the installation name file for tape
labeling, SYSTEM:TAPNAM.TXT (see Section 5.5).
Labeled Tape Processing on TOPS-20 Page 50
8.5 DECSYSTEM-20 Advanced System Commands
This manual must be updated to include the full descriptions of
the EXEC commands listed in Section 5.1.
8.6 DECSYSTEM-20 System Manager's Guide
The following files should be added to Table 7-1 (list of files
in <SYSTEM> directory):
DEVICE-STATUS.BIN - Binary file containing status
information for tape-drives and disk-drives
TAPNAM.TXT - Installation identifier text string that is
written in VOL1 labels on labeled tapes
Table 7-2 (list of <SUBSYS> files) should be updated to reflect
the addition of MOUNTR.EXE.
Labeled Tape Processing on TOPS-20 Page 51
9.0 REFERENCES
9.1 Standards
A complete list of standards that affect the tape labeling
project is provided in Section 4.0 of this specification.
9.2 DEC Documents and Publications
1. EK-SEDRR-RF-002 - DECSYSTEM-20 Error Detection,
Recovery and Reporting Reference Manual
2. AA-4181A-TM - DECSYSTEM-20 USAGE File Specification
3. 005-003-187-09 - DEC Magnetic Tape Labels and File
Structure Standard (DEC Standard # 149)
4. PMH-78-001-01-C - Cursory Project Plan for TOPS-20
Release 3A and TOPS-20 Release 4, P. Hurley
5. EGF-002-00-U - Cursory Project Plan for TOPS20
DX20/TU70,1,2 Magtapes Release 3A, E. Fortmiller
6. 200-220-004-01 - ANSI Tape Processing on TOPS-20
Functional Specification, T. Hess
7. MLB-78-002-02-S - Functional Specification for the New
Operator Interface, M. Berkowitz
9.3 Other Specifications And Documents
1. IBM GC26-3795-2 - OS/VS Tape Labels
Labeled Tape Processing on TOPS-20 Page 52
10.0 DESCRIPTION OF LABEL FORMATS AND FILE STRUCTURES
10.1 Label Formats
This section will describe the formats of DEC Standard tape
labels as processed by TOPS-20. There will be a pictorial
representation of each label followed by explanations of some
of the fields in greater detail when necessary. When the word
"RESERVED" appears as a field name, that field is reserved for
future standardization, and it must contain spaces. The
contents of all fields preceded by an asterisk (*) are defined
specifically by the TOPS-20 labeled tape implementation and are
described herein. Fields marked by a number sign (#) are
defined by DEC Standard 149. All other field contents are
defined by ANSI Standard X3.27. A list of differences between
labeling standards is given in Section 10.4.
Labels are composed entirely of ASCII characters. Unless
otherwise noted, all numeric values have a decimal radix.
The meanings of the field headings are as follows:
CP - Character position in the label.
FIELD NAME - Reference name of the field.
LEN - Length of the field in ASCII characters.
CONTENTS - Contents of the field.
Labeled Tape Processing on TOPS-20 Page 53
10.1.1 Volume Label -
!=======================================================!
! CP ! FIELD NAME ! LEN ! CONTENTS !
!=======================================================!
! 1 - 3 ! LABEL IDENTIFIER ! 3 ! "VOL" !
!-------------------------------------------------------!
! 4 ! LABEL NUMBER ! 1 ! "1" !
!-------------------------------------------------------!
! 5 - 10 ! VOLUME IDENTIFIER ! 6 ! VOLUME LABEL !
! ! ! ! ANY ALPHANUMERIC !
! ! ! ! OR SPECIAL CHAR- !
! ! ! !ACTERS - MUST NOT !
! ! ! ! BE ALL SPACES !
!-------------------------------------------------------!
#! 11 ! ACCESSIBILITY ! 1 ! ANY ALPHANUMERIC !
! ! ! ! OR SPECIAL CHAR- !
! ! ! ! ACTER. A SPACE !
! ! ! ! MEANS NO !
! ! ! ! RESTRICTIONS !
!-------------------------------------------------------!
!12 - 24 ! RESERVED ! 13 ! SPACES !
!-------------------------------------------------------!
!25 - 37 ! SYSTEM CODE ! 13 !IDENTIFICATION OF !
! ! ! ! SYSTEM THAT !
! ! ! !CREATED VOL LABELS!
!-------------------------------------------------------!
#!38 - 50 ! OWNER IDENTIFIER ! 13 ! THE CONTENTS OF !
! ! ! ! THIS FIELD ARE !
! ! ! ! SYSTEM DEPENDENT !
!-------------------------------------------------------!
#! 51 !DEC STANDARD VERSION! 1 ! "1" !
!-------------------------------------------------------!
!52 - 79 ! RESERVED ! 28 ! SPACES !
!-------------------------------------------------------!
! 80 ! LABEL STD VERSION ! 1 ! "3" !
!=======================================================!
10.1.1.1 Accessibility -
INPUT: If this field contains a space, no access restrictions
will be imposed. If it contains a "1" and the VOL1 system code
indicates that the volume was created by TOPS-20, access will
be based upon the contents of the VOL2 volume access code
field. Any other combinations of accessibility and system code
will require the user to have WHEEL or OPERATOR capability
enabled to access the volume.
OUTPUT: ANSI and EBCDIC tapes will contain a space in this
field. TOPS-20 tapes will contain a "1".
Labeled Tape Processing on TOPS-20 Page 54
10.1.1.2 System Code - A proposal is currently under
consideration by the ANSI X3 committee to define the System
Code field within the VOL1 label. This field will contain a
code that identifies the operating system that wrote the volume
label group.
INPUT: Refer to description of VOL1 Accessibility field.
OUTPUT: ANSI and EBCDIC tapes will contain spaces in this
field. TOPS-20 tapes will contain the text "DECSYS20 ".
10.1.1.3 Owner Identifier Field - The DEC standard defines
this field as follows:
CP 38 - 39 = D%
CP 40 = Machine code
CP 41 - 50 = Implementation dependent
The "D%x" characters (CP 38-40) provide a system identification
method so that the remaining data in the owner identifier can
be interpreted. The "x" (CP 40) is chosen from the table,
Machine Code Machine
8 PDP-8
A PDP-10
B PDP-11
C VAX-11/780
F PDP-15
K DECSYSTEM-20
In the case of tapes produced on DECSYSTEM-20 machines (CP
38-40 = D%K), CP 41-50 will contain an installation code
consisting of 10 ASCII characters. When CHECKD initializes a
labeled tape, it will obtain the installation code from the
file SYSTEM:TAPNAM.TXT.
10.1.2 Ancillary Volume Label - In order to provide full
DECSYSTEM-20 access protection and owner identification, it is
necessary to have an additional system label record in the
volume-label set. This record is the VOL2 system volume label.
The information contained in this label complements the VOL1
label owner identification field. The VOL2 label is written
only on TOPS-20 tapes.
Labeled Tape Processing on TOPS-20 Page 55
TOPS-20 ANCILLARY SYSTEM VOLUME LABEL (VOL2)
!=======================================================!
! CP ! FIELD NAME ! LEN ! CONTENTS !
!=======================================================!
! 1 - 3 ! LABEL IDENTIFIER ! 3 ! "VOL" !
!-------------------------------------------------------!
! 4 ! LABEL NUMBER ! 1 ! "2" !
!-------------------------------------------------------!
! 5 - 10 ! ACCESS CODE ! 6 !NUMERIC CHARACTERS!
! ! ! !SPECIFYING VOLUME !
! ! ! ! ACCESS !
!-------------------------------------------------------!
!11 - 22 ! OWNER'S DIRECTORY ! 12 !NUMERIC CHARACTERS!
! ! (TOPS10 ONLY) ! ! SPECIFYING PPN !
!-------------------------------------------------------!
!23 - 61 ! OWNER'S NAME ! 39 ! ANY ALPHANUMERIC !
! ! ! !CHARS. SPECIFYING !
! ! ! ! USER NAME !
!-------------------------------------------------------!
!62 - 80 ! RESERVED FOR DEC ! 19 ! SPACES !
!=======================================================!
On input, the processing of additional system volume labels
(viz., VOL2 through VOL9) is controlled by information in the
VOL1 label. If the VOL1 owner identifier indicates that the
volume was created by TOPS-20 and the VOL1 accessibility is a
"1", then VOL2, if present, will be examined for TOPS-20 owner
identifier and availability information; VOL3 through VOL9
will be ignored if present. In all other cases, VOL2 through
VOL9 will be ignored if present. The fields of the TOPS-20
VOL2 label have the following significance:
10.1.2.1 Access Code - The access code will be the TOPS-20
volume protection, six digits, zero filled and right-justified.
It will consist of four zero digits followed by a two-digit
code specifying access restrictions placed on users other than
the owner of the volume. The following bits are defined:
DP%RD (40) - Read files in file set
DP%CN (10) - Overwrite/modify files
DP%CF (04) - Append files to end of file set
The owner of the volume is subject to none of the volume access
restrictions described above.
Labeled Tape Processing on TOPS-20 Page 56
10.1.2.2 Owner's Directory - This field contains two
zero-filled, right-justified, six-digit numbers, specifying a
TOPS-10 project-programmer number.
INPUT: Ignored
OUTPUT: 12 zeros are written here
10.1.2.3 Owner's Name - The owner's name field will be the
user name by which the owner logs in to the system. If this
field contains all blanks, the volume will be regarded as a
scratch tape.
Labeled Tape Processing on TOPS-20 Page 57
10.1.3 File Header Labels -
FIRST FILE-HEADER-LABEL (HDR1)
!=======================================================!
! CP ! FIELD NAME ! LEN ! CONTENTS !
!=======================================================!
! 1 - 3 ! LABEL IDENTIFIER ! 3 ! "HDR" !
!-------------------------------------------------------!
! 4 ! LABEL NUMBER ! 1 ! "1" !
!-------------------------------------------------------!
*! 5 - 21 ! FILE IDENTIFIER ! 17 !ANY ALPHNUMERIC OR!
! ! ! !SPECIAL CHARACTER !
! ! ! !IN THE CENTER FOUR!
! ! ! ! COLUMNS OF THE !
! ! ! ! ASCII CODE TABLE !
!-------------------------------------------------------!
!22 - 27 !FILE-SET IDENTIFIER ! 6 ! SETNAME OF !
! ! ! ! FILE/VOLUME SET !
!-------------------------------------------------------!
!28 - 31 !FILE SECTION NUMBER ! 4 !NUMERIC CHARACTERS!
! ! ! !STARTS AT 0001 AND!
! ! ! !IS INCREMENTED ON !
! ! ! ! VOLUME SWITCHES !
!-------------------------------------------------------!
!32 - 35 !FILE SEQUENCE NUMBER! 4 !FILE NUMBER WITHIN!
! ! ! ! VOLUME SET FOR !
! ! ! !THIS FILE. STARTS !
! ! ! ! AT 0001 !
!-------------------------------------------------------!
!36 - 39 ! GENERATION NUMBER ! 4 !NUMERIC CHARACTERS!
!-------------------------------------------------------!
!40 - 41 ! GENERATION VERSION ! 2 !NUMERIC CHARACTERS!
!-------------------------------------------------------!
!42 - 47 ! CREATION DATE ! 6 ! " YYDDD" (JULIAN !
! ! ! !DATE) OR " 00000" !
! ! ! ! IF NO DATE !
!-------------------------------------------------------!
!48 - 53 ! EXPIRATION DATE ! 6 ! " YYDDD" (JULIAN !
! ! ! !DATE) OR " 00000" !
! ! ! ! IF NO DATE !
!-------------------------------------------------------!
#! 54 ! ACCESSIBILITY ! 1 ! SPACE OR "1" !
!-------------------------------------------------------!
!55 - 60 ! BLOCK COUNT ! 6 ! "000000" !
!-------------------------------------------------------!
!61 - 73 ! SYSTEM CODE ! 13 !DEC STANDARD CODE !
! ! ! ! FOR OPERATING !
! ! ! ! SYSTEM !
!-------------------------------------------------------!
!74 - 80 ! RESERVED ! 7 ! SPACES !
!-------------------------------------------------------!
Labeled Tape Processing on TOPS-20 Page 58
SECOND FILE-HEADER-LABEL (HDR2)
!=======================================================!
! CP ! FIELD NAME ! LEN ! CONTENTS !
!=======================================================!
! 1 - 3 ! LABEL IDENTIFIER ! 3 ! "HDR" !
!-------------------------------------------------------!
! 4 ! LABEL NUMBER ! 1 ! "2" !
!-------------------------------------------------------!
! 5 ! RECORD FORMAT ! 1 ! "F" = FIXED !
! ! ! ! "D" = VARIABLE !
! ! ! ! "S" = SPANNED !
#! ! ! ! "U" = UNDEFINED !
!-------------------------------------------------------!
! 6 - 10 ! BLOCK LENGTH ! 5 !NUMERIC CHARACTERS!
!-------------------------------------------------------!
!11 - 15 ! RECORD LENGTH ! 5 !NUMERIC CHARACTERS!
!-------------------------------------------------------!
*!16 - 36 ! SYSTEM DEPENDENT ! 21 ! TO BE DEFINED !
!-------------------------------------------------------!
#! 37 ! FORM CONTROL ! 1 !"A" , "M" OR SPACE!
!-------------------------------------------------------!
*!38 - 43 ! FILE ACCESS CODE ! 6 !NUMERIC CHARACTERS!
!-------------------------------------------------------!
*!44 - 47 ! SYSTEM DEPENDENT ! 4 ! TO BE DEFINED !
!-------------------------------------------------------!
*! 48 ! PADDING CHARACTER ! 1 ! ANY CHARACTER !
!-------------------------------------------------------!
*!49 - 50 ! FILE BYTE SIZE ! 2 !NUMERIC CHARACTERS!
!-------------------------------------------------------!
!51 - 52 ! BUFFER OFFSET ! 2 !NUMERIC CHARACTERS!
!-------------------------------------------------------!
!53 - 80 ! RESERVED ! 20 ! SPACES !
!-------------------------------------------------------!
10.1.3.1 File Identifier - The file identifier field will
contain the first seventeen (17) characters of the file name
and file type specified in the GTJFN call, with the separating
period included if present.
10.1.3.2 Creation Date - The date when the file was created,
in format " YYDDD" (e.g. February 4, 1978 would be represented
as " 78035").
INPUT: The contents of this field are available to the user
OUTPUT: The current date is written
Labeled Tape Processing on TOPS-20 Page 59
10.1.3.3 Expiration Date - If the current date is greater than
or equal to the expiration date of a file, the file is regarded
as expired. The expiration date is recorded in the same format
as the creation date.
INPUT: Has no effect upon processing
OUTPUT: The monitor will not permit a user to overwrite a file
that has not expired. The user specifies the expiration date
for every new file that is created.
10.1.3.4 Accessibility -
INPUT: If this field contains a space, no access restrictions
will be imposed. If it contains a "1" and the HDR1 system code
indicates that the file was created by TOPS-20, access will be
based upon the contents of the HDR2 file access code field.
Any other combinations of accessibility and system code will
require the user to have WHEEL or OPERATOR capability enabled
to access the file.
OUTPUT: ANSI and EBCDIC tapes will contain a space in this
field. TOPS-20 tapes will contain a "1".
10.1.3.5 System Code - Used to identify the system that
created the file.
INPUT: Used in conjunction with the accessibility field to
control access to the file
OUTPUT: The text, "DECSYSTEM20 ", will be written
10.1.3.6 Record Format - The record format field describes the
record structure of the recorded data. The current parochial
practice of undefined record format will be read and written
only on TOPS-20 volumes. The fixed, variable, and spanned
record formats are discussed later.
10.1.3.7 File Access Code - The file access code field
contains the standard TOPS-20 file protection information.
This field will be used to control access to individual files
on a volume set in a fashion similar to that of disk files.
This field is only examined under certain circumstances (see
description of accessibility field, above).
10.1.3.8 Padding Character - The padding character may be
specified by the user on TOPS-20 tapes. The padding scheme for
other label types is described in Section 10.3.6.
Labeled Tape Processing on TOPS-20 Page 60
10.1.3.9 File Byte Size - The file byte size field will
contain the file byte size specified on the OPENF JSYS.
10.1.4 End-of-volume Labels - These labels are identical to
their file-header label counterparts, except that the label
identifier field (CP 1-3) contains "EOV". The block count
field contains the number of data blocks since the preceding
beginning of file-section (i.e. the number of physical tape
records in the file section).
10.1.5 End-of-file Labels - These labels are identical to
their file-header label counterparts, except that the label
identifier field (CP 1-3) contains "EOF". The block count
field contains the number of data blocks since the preceding
beginning of file-section (i.e. the number of physical tape
records in the file section).
10.1.6 User Labels - User labels are optional sets of label
records that follow the standard system label groups. Their
inclusion and contents are controlled by the user (in the case
of user file labels) and by the installation (in the case of
user volume labels).
10.1.6.1 User Volume Labels (UVL1-UVL9) - These labels occur
after the system volume labels (those of the form VOLn). They
provide an area in which installations may place any
volume-specific information to be retrieved at access. It is
also possible for an installation to control tape access with
UVLs. There will be no provisions implemented at this time for
the processing of user volume labels.
!=======================================================!
! CP ! FIELD NAME ! LEN ! CONTENTS !
!=======================================================!
! 1 - 3 ! LABEL IDENTIFIER ! 3 ! "UVL" !
!-------------------------------------------------------!
! 4 ! LABEL NUMBER ! 1 !1-9 AS APPROPRIATE!
!-------------------------------------------------------!
! 5 - 80 ! RESERVED FOR ! 76 ! "a" CHARACTERS !
! ! INSTALLATION USE ! ! !
!-------------------------------------------------------!
Labeled Tape Processing on TOPS-20 Page 61
10.1.6.2 User File Labels (UHLa, UTLa) - User header labels
(UHLa) are found after system file header labels (HDRn), and
user trailer labels (UTLa) follow system file trailer labels
(EOFn and EOVn). These label groups may be read and written
with appropriate TOPS-20 monitor calls. Their use is under
exclusive control of the user application. They typically
contain supplementary information about the file.
!=======================================================!
! CP ! FIELD NAME ! LEN ! CONTENTS !
!=======================================================!
! 1 - 3 ! LABEL IDENTIFIER ! 3 ! "UHL" OR "UTL" !
! ! ! ! AS APPROPRIATE !
!-------------------------------------------------------!
! 4 ! LABEL NUMBER ! 1 ! "a" CHARACTER !
!-------------------------------------------------------!
! 5 - 80 ! RESERVED FOR USER ! 76 ! "a" CHARACTERS !
! ! APPLICATIONS ! ! !
!-------------------------------------------------------!
10.1.7 Identification of Label Types - The following steps may
be performed in the indicated order to determine the label type
of a given tape:
Step 1. If no information can be read from the beginning of the
tape or if the first thing written on the tape is a
tape mark, then the tape is unlabeled. Otherwise,
proceed to Step 2.
Step 2. If the first record of the tape contains exactly 80
characters and the first 4 characters can be
interpreted as "VOL1" coded in EBCDIC, then the label
type is EBCDIC. Otherwise, proceed to Step 3.
Step 3. If the first record of the tape contains 80 or more
characters and the first 4 characters can be
interpreted as "VOL1" coded in ASCII, then proceed to
Step 4. Otherwise, the tape is unlabeled.
Step 4. If the VOL1 label contains a "1" in CP 11, the
characters "D%K" in CP 38-40, a "1" in CP 51, and a "3"
in CP 80, then the label type is TOPS-20. Otherwise,
the label type is ASCII.
Labeled Tape Processing on TOPS-20 Page 62
10.2 Arrangement Of Labels And Data
The following examples show how a volume set is organized and
where different label groups apprear. The abbreviations used
in the layouts given below are:
SYMBOL MEANING
------ -------
* tape mark (EOF)
BOT Beginning-of-tape marker
EOT End-of-tape marker
, Physical record delimiter (inter-record gap)
1. File length is effectively unbounded in that there may
be as many as 9999 sections in one file.
2. There is only one section of any given file on a
volume.
3. The sections of a file are written consecutively (i.e.
section n+1 is written immediately following section
n) and do not have sections of other files
interspersed.
10.2.1 Single File, Single Volume -
BOT , VOL1 , VOL2 , UVL1 , ... , UVLn , HDR1 , HDR2 , UHL1 ,
... , UHLn * ---data--- * EOF1 , EOF2 , UTL1 , ... , UTLn * *
10.2.2 Single File, Multi-volume -
BOT , VOL1 , VOL2 , UVL1 , ... , UVLn , HDR1 , HDR2 , UHL1 ,
... , UHLn * --data(1)-- * EOV1 , EOV2 , UTL1 , ... , UTLn * *
BOT , VOL1 , VOL2 , UVL1 , ... , UVLn , HDR1 , HDR2 , UHL1 ,
... , UHLn * --data(1)-- * EOF1 , EOF2 , UTL1 , ... , UTLn * *
10.2.3 Multi-file, Single Volume -
BOT , VOL1 , VOL2 , UVL1 , ... , UVLn , HDR1 , HDR2 , UHL1 ,
... , UHLn * --data(1)-- * EOF1 , EOF2 , UTL1 , ... , UTLn *
HDR1 , HDR2 , UHL1 , ... , UHLn * --data(2)-- * EOF1 , EOF2 ,
UTL1 , ... , UTLn * *
Labeled Tape Processing on TOPS-20 Page 63
10.2.4 Multi-file, Multi-volume -
BOT , VOL1 , VOL2 , UVL1 , ... , UVLn , HDR1 , HDR2 , UHL1 ,
... , UHLn * --data(1)-- * EOF1 , EOF2 , UTL1 , ... , UTLn *
HDR1 , HDR2 , UHL1 , ... , UHLn * --data(2)-- * EOV1 , EOV2 ,
UTL1 , ... , UTLn * *
BOT , VOL1 , VOL2 , UVL1 , ... , UVLn , HDR1 , HDR2 , UHL1 ,
... , UHLn * --data(2)-- * EOF1 , EOF2, UTL1 , ... , UTLn *
HDR1 , HDR2 , UHL1 , ... , UHLn * --data(3)-- * EOF1 , EOF2 ,
UTL1 , ... , UTLn * *
Labeled Tape Processing on TOPS-20 Page 64
10.3 Block Structure And Organization
Some of the information in this section is excerpted from the
ANSI Standard X3.27.
All records of files recorded with fixed, variable, or spanned
formats must consist entirely of either ASCII characters from
the code table specified in ANSI Standard X3.4. on ANSI and
TOPS-20 tapes or EBCDIC characters on EBCDIC tapes.
No explicit indication of the boundaries between records is
required. There is an integral number of records in a block
for fixed-length records (F) and variable-length records (D).
There is an integral number of segments in a block for spanned
records (S). Blocks of fixed-length records containing fewer
records than the maximum possible are permitted. Blocks of
varying length are permitted for variable-length records and
for segments of spanned records. The system will determine the
actual number of characters read and will update user pointers
appropriately. All records in a given file must be of the same
format.
10.3.1 Fixed-length Records (F) - No indication of record
length is required within the file. Examples appear below:
Fixed-length records (F), Unblocked
!----------! !----------! !----------!
! RECORD ! ! RECORD ! ! RECORD !
!----------! !----------! !----------!
| | | | | |
!----------! !----------! !----------!
! BLOCK ! ! BLOCK ! ! BLOCK !
!----------! !----------! !----------!
Fixed-length records (F), Blocked
!-----------! !-----------! !-----------!
!REC!REC!REC! !REC!REC!REC! !REC!REC!REC!
!-----------! !-----------! !-----------!
| | | | | | | | | | | |
!-----------! !-----------! !-----------!
! BLOCK ! ! BLOCK ! ! BLOCK !
!-----------! !-----------! !-----------!
Labeled Tape Processing on TOPS-20 Page 65
10.3.2 Variable-length Records (D) - A record control word
(RCW) precedes each record. The RCW consists of 4 characters.
The record length (i.e. the number of characters it contains)
is expressed as a decimal numeral occupying the entire RCW.
The record length includes the length of the RCW. Examples of
variable-length records appear below:
Variable-length records (D), Unblocked
!-------------! !---------------------!
! RECORD ! ! RECORD !
!RCW ! DATA ! !RCW ! DATA !
!-------------! !---------------------!
| | | |
!-------------! !---------------------!
! BLOCK ! ! BLOCK !
!-------------! !---------------------!
Variable-length records (D), Blocked
!-------------------!--------------!--------------------!
! RECORD ! RECORD ! RECORD !
!RCW ! DATA !RCW ! DATA !RCW ! DATA !
!-------------------!--------------!--------------------!
| | | |
!-------------------------------------------------------!
! BLOCK !
!-------------------------------------------------------!
Example of Unblocked Variable-length Records
!------!------------------------------------!
! 1780 ! DATA 1776 CHARACTERS !
!------!------------------------------------!
!------!-------------------------------------------------!
! 1988 ! DATA 1984 CHARACTERS !
!------!-------------------------------------------------!
<------>
R C W
Labeled Tape Processing on TOPS-20 Page 66
10.3.3 Spanned Records (S) - A segment control word (SCW) is
the first five characters of each segment. The first character
of the SCW is call the spanning indicator. It has the
following meanings:
0 Record begins and ends in this segment
1 Record begins but does not end in this segment
2 Record neither begins nor ends in this segment
3 Record ends but does not begin in this segment
The segment length (i.e. the number of characters it contains)
is expressed as a decimal numeral occupying the next four
character positions of the SCW. The segment length includes
the length of the SCW.
1. For spanned records there is no explicit record
control word that expresses the total record length.
2. Records may span volumes.
3. Record length is unbounded, in that there is no limit
to the number of segments in one record.
4. There is only one segment of any given record in a
block.
5. The segments of a record are written consecutively
(i.e. segment n+1 is written immediately following
segment n), and do not have segments of other records
interspersed.
Some examples of spanned records follow:
Spanned record (S), Unblocked
!--------------------! !---------!
! RECORD ! ! RECORD !
!--------------------! !---------!
| | \ \ | |
!----!-------------! !----!-------! !----!---------!
!SCW ! ! !SCW ! ! !SCW ! !
! SEGMENT ! ! SEGMENT ! ! SEGMENT !
!------------------! !------------! !--------------!
Labeled Tape Processing on TOPS-20 Page 67
Spanned record (S), Blocked
!----! !-----------------! !------
!REC ! ! RECORD ! !RECORD
!----! !-----------------! !------
| | | | \ \ \ \ |
!----!----!----!----! !----!-------! !----!----!----!----!
!SCW ! !SCW ! ! !SCW ! ! !SCW ! !SCW ! !
! SEGMENT ! SEGMENT ! ! SEGMENT ! ! SEGMENT ! SEGMENT !
!-------------------! !------------! !-------------------!
| | | | | |
!-------------------! !------------! !-------------------!
! BLOCK ! ! BLOCK ! ! BLOCK !
!-------------------! !------------! !-------------------!
Example of Unblocked Spanned Record
Length: 4241 characters
!----------!---------------------------------------!
! 1 ! 2048 ! DATA 2043 CHARACTERS !
!---!------!---------------------------------------!
!----------!---------------------------------------!
! 2 ! 2048 ! DATA 2043 CHARACTERS !
!---!------!---------------------------------------!
!----------!-----------------------!
! 3 ! 0170 ! DATA 165 CHARACTERS !
!---!------!-----------------------!
<---------->
S C W
Labeled Tape Processing on TOPS-20 Page 68
Example of Blocked Spanned Records
Record #1: 4231 characters
Record #2: 5936 characters
!----------!---------------------------------------!
! 1 ! 2048 ! DATA 2043 CHARACTERS !
!---!------!---------------------------------------!
!----------!---------------------------------------!
! 2 ! 2048 ! DATA 2043 CHARACTERS !
!---!------!---------------------------------------!
!----------!----------!----------!-----------------!
! 3 ! 0150 ! 145 CHAR.! 1 ! 1898 ! DATA 1893 CHAR. !
!---!------!----------!---!------!-----------------!
<---------->
S C W
!----------!---------------------------------------!
! 2 ! 2048 ! DATA 2043 CHARACTERS !
!---!------!---------------------------------------!
!----------!-----------------------------------!
! 3 ! 2005 ! DATA 2000 CHARACTERS !
!---!------!-----------------------------------!
<---------->
S C W
10.3.4 Undefined Records (U) - These records are of an
undefined size and content. Data that is classically written
on TOPS-10 and TOPS-20 falls into this category. Only TOPS-20
format tapes may contain this type of record structure.
10.3.5 Padding - Whenever it becomes necessary or advisable to
extend the recorded length of a block beyond the end of the
last (or only) record in it, the block may be extended (padded)
to the required length. Padding is not counted in the record
control word or the segment control word.
10.3.5.1 Padding Of Data Blocks - Blocks within a file are
padded out to the desired length by the use of circumflex
accent characters (position 5/14 of the ASCII code table). To
ensure that padding after fixed-length blocked records can be
distinguished from valid records, fixed-length records may not
consist entirely of circumflex characters. If the tape is not
an interchange tape, then any character will be permitted for
padding provided it is specified for the file header label.
Labeled Tape Processing on TOPS-20 Page 69
10.3.5.2 Block Length Limits - The following block length
limits will be imposed by TOPS-20 upon files written in fixed,
variable, and spanned formats:
LABEL MINIMUM MAXIMUM
TYPE (BYTES) (BYTES)
----- ------- -------
ANSI 18 2048
EBCDIC 18 32760
STANDARD 18 40960
The existing MTA device restrictions will apply for TOPS-20
tape files written in undefined format.
Labeled Tape Processing on TOPS-20 Page 70
10.4 Differences in Labeling Standards
Although the ANSI, IBM, and DEC tape labeling and file
structure standards are very similar, their differences should
be noted. This section will attempt to do so by comparing the
DEC standard to the other two.
10.4.1 Comparison of DEC and IBM Standards -
General:
o All information on IBM standard labeled tapes is
recorded using the EBCDIC character code.
o All labels on IBM tapes are exactly 80 characters in
length, whereas ANSI and DEC labels may be longer.
o IBM labeled tapes may not contain user volume labels.
In VOL1 Label:
o The accessibility field (CP 11) is a reserved field on
IBM tapes, and it must contain a zero.
o The IBM owner identifier is 10 characters long and
resides in CP 42-51. TOPS-20 will record the
installation name in this field. CP 12-41 of IBM VOL1s
must contain blanks.
o CP 80 (label-standard version field in the ANSI VOL1)
must contain a blank on IBM volumes.
In HDR2/EOF2/EOV2 Labels:
o Variable-length record format is represented by a "V"
rather than a "D". TOPS-20 will accept either a "V" or
"D" on input, and it will write a "V" on output.
o CP 16-36, CP 38, and CP 40-52 contain miscellaneous
special information and reserved fields on IBM tapes.
These positions are ignored on input and filled with
blanks on output.
o CP 39 is the IBM block attribute field.
File Structures
o The maximum block length of files on IBM labeled tapes
is 32760 characters.
*** More to come ***
10.4.2 Comparison of DEC and ANSI Standards -
General:
o The DEC standard imposes the restriction that all
labeled tapes must be recorded with 9-channel
structure.
o DEC has defined the contents of all fields that ANSI
has reserved for implementation definition.
In HDR1/EOF1/EOV1 Labels:
Labeled Tape Processing on TOPS-20 Page 71
o The DEC standard treats the generation number and
generation version as parts of a single quantity, where
ANSI defines each to have a unique meaning.
In HDR2/EOF2/EOV2 Labels:
o DEC provides for file structures of undefined format,
identified by the letter "U" in the record format
field, whereas this practice is not supported by ANSI.
File Structures
o DEC supports the ANSI file structures associated with
fixed, variable, and spanned records. In addition, DEC
defines an undefined file structure as one having no
rules governing what lies between the file header and
trailer labels.
o The maximum block length of files on ANSI standard
labeled tapes is 2048 characters.
VOL2 Label
In anticipation of a change in the ANSI Standard X3.27,
tapes written with the TOPS-20 label type will have
VOL2 labels. VOL2 follows VOL1 immediately, and it
should be ignored by foreign operating systems. It is
intended, however, that these tapes will be used solely
within TOPS-20 environments. If interchange is a goal,
then the ANSI label type should be used.
Labeled Tape Processing on TOPS-20 Page 72
11.0 UNRESOLVED ISSUES
1. The following problem in the STC TU7x magnetic tape
subsystem has been experimentally verified to exist:
If a tape on a drive is manually unloaded (i.e. by
the use of the UNLOAD button on the drive as opposed
to being unloaded by an order from the operating
system), no attention interrupt will be signaled to
the system at that time. In addition, the first
loading of a tape on a drive following such a manual
unload will not generate an attention interrupt.
TOPS-20 currently relies upon attention interrupts to
maintain up-to-date in-core status information in mag
tape unit data blocks (UDBs). This project depends
upon attention interrupts to implement the AVR
feature. Someone (hardware, firmware, or software)
must change to resolve the problem, but it is not yet
certain who. It is believed that the missing
interrupts can be provided by an ECO to the TX02
controller.
[End of TOPS-20 Labeled Tape Processing Functional Spec]