IBM System 360 Programmers Guide
IBM System 360 Programmers Guide
IBM System 360 Programmers Guide
S360-20
Form C28- 6550- 2 OS
Programming Conventions • • • • 55
EXCP Requirements • • • • • • • 76
Channel Program. • • • • . • • • 76
Data and Command Chaining • • 76
Control Blocks • . • • • • • • • • 77
Input/Output Block (lOB). • 77
Event Control Block (ECB) • • 77
Data Control Block (DCB) • • . · 77
Data Extent Block (DEB) • 77
Channel Program Execution • . • • • • • • 78
Initiation of Channel Program. • • • • • • • 78
Completion of Channel Program. • • • • • • • • 79
Device End Errors . • • • . • • • • • • • 79
Interruption Handling and Error Recovery Procedures. • • • • • 79
Error Recovery Procedures for Related Channel Programs. • • 79
Appendages. • • • • • • • • • • • 80
Defining Appendages. • • • • 80
Entering Appendages Into SVC Library • • • • • 80
Characteristics of Appendages • • . • · 81
Start Input/Output (SIO) Appendage. • • • • 82
Program Controlled Interruption (PCI) Appendage • • • • • • 82
End-of-Extent Appendage • 82
Channel End Appendage • • · 83
Abnormal End Appendage. • • 83
EXCP Programming Specifications • • 84
Macro-Instructions • • • . • • 84
DCB -- Define Data Control Block for EXCP . • • • 84
OPEN -- Initialize Data Control Block . • • • • • • 90
EXCP -- Execute Channel Program . • • • . 91
EOV -- End of Volume. • • • • ~. • • • . • • • • • • • • • • 91
CLOSE -- Restore Data Control Block • . • • • 92
Control Block Fields . • • • . • • 93
Input/Output Block Fields . • • 93
Event Control Block Fields • • • • 95
Data Extent Block Flelds • . • . • · . 96
Appendix: Restore Macro-Instruction . • . . '. . . • 97
RESTORE Macro-Instruction • • 97
Control Statements Required • 97
RESTORE Macro-Definition • • • • 97
The Resident BLDL Table and Resident Access Method Options • . · .116
The Resident BLDL Table Option. • . • • • . 116
Selecting Entries for the Resident BLDL Table. . . • • .117
Table Size. • • . • • • • • · . • . • .117
Frequency of Use. • • • . . • • • • • • . 117
The Resident Access Method Option • .117
Considerations for Use • • • • • • .117
Creating Procedure Library Lists • • .118
Example. • • • • • • • • • • • • .118
FIGURES
TABLES
PREREQUISITE PUBLICATIONS
The IBM System/360 operating System:
Assembler Language publication (Form
C28-6514) contains the information neces-
sary to code programs in the assemtler
language.
The IBM System/360 operating Systerr:
Data ~anagement publication (Form C28-6537)
contains a general description of the
structure of catalog indexes, as well as a
brief discussion of the volume tatle of
contents (V'roc).
The IBM System/360 Operating System:
Control Program Services publication (Form
C28-6541) contains an explanation of" the
notation conventions used to describe the
macro-instructions contained in this chap-
ter.
The IBM System/360 Operating System:
System Control Blocks publication (Form
C28-6628) contains format and field de-
scriptions of the system control tlocks
referred to in this chapter.
RECOMMENDED PUBLICATIONS
The IBM System/360 Operating System:
utilities publication (Form C28-6586) de-
scribes how to maintain and ITodify the
catalog and the volume table of contents
through the use of utility programs.
This chapter describes how to maintain and modify the catalog and the
volume table of contents through the use of macro-instructions. Most of
the maintenance and modification functions can also be performed using
utility statements. The utility statements are described in the
publication IBM System/360 Operating System: Utilities.
10
If the nam4ed data set is stored on more than 20 vol urnes, bytes
253-255 of the block contain the relative track address of the next
block of volume pointers. Byte 256 contains a binary zero.
r---------T----------T-------------------------------------------------,
I Name I Operation I Operand ~
~---------+----------+-------------------------------------------------i
I I LOCATE I INDAB READ VOLUME-LIST BLOCK FOR I
I I Check Exceptional Returns CATALOGED DATA SET A.B INTOI
I INDAB I CAMLST I NAME,AB"LOCAREA MAIN STORAGE AREA NAMED I
I AB I DC I CL44'A.B' LOCAREA. LOCAREA ALSO I
I LOCAREA I DS I OD CONTAINS 3-BYTE TTR AND I
I _________ I ___________
L ~ DS ~I _________________________________________________
265C 6-BYTE SERIAL NUMBER JI
§pecifying by TTR
You can read any block in the catalog by specifying, in the form TTR,
the identification of the block and its location relative to the
beginning of the catalog. TT is the number of tracks defining the
position, relative to the beginning of the catalog, of the track on
which the block to be read resides; R is the identification of the block
on that track. (Formats of each type of catalog block are contained in
Appendix A of this chapter.)
Example: In the following example, the block at the location indicated
by TTR is read into main storage. The specified block is in the catalog
on the system residence volume.
r---------T----------T-------------------------------------------------,
I Name I Operationl Operand I
t---------+----------+-------------------------------------------------~
I I LOCATE I BLK READ A BLOCK INTO MAIN I
I I Check Exceptional Returns STORAGE AREA NAMED LOCAREA I
I BLK I CAMLST I BLOCK,TTR"LOCAREA I
I 'ITR I DC I H' 5' RELATIVE TRACK 5 I
I I DC I X'03' BLOCK 3 ON TRACK I
I LOCAREA I DS I 00 LOCAREA ALSO CONTAINS 3-BYTEI
IL _________ I __________
~ DS I _________________________________________________
~ 265C TTR AND 6-BYTE SERIAL NO. JI
12
The LOCATE macro-instruction points to the CAMLST macro-instruction.
BLOCK, the first operand of CAMLST, specifies that the system is to
search the catalog for the block indicated by TTR, the second operand.
LOCAREA, the fourth operand, specifies a 265-byte area you have reserved
in main storage.
After execut.ion of these macro-instructions, the 265-byte area
contains: the 256-byte index block, the 3-byte relative track address
CTTR) of the block following the one read into main storage, and the
6-byte serial number of the volume on which the block was found.
r---------T----------T-------------------------------------------------,
I Name I Operation I Operand I
t---------f----------f-------------------------------------------------~
INDEX I INDEXA BUILD INDEX A
Check Exceptional Returns
INDEX I INDEXB BUILD INDEX STRUCTURE A.B
Check Exceptional Returns
INDEX I INDEXC BUILD INDEX STRUCTURE A.B.C
Check Exceptional Returns
INDEXA CAMLST I BLDX,ALEVEL,VOINUM
INDEXB CAMLST I BLDX,BLEVEL,VOLNUM
INDEXC CAMLST I BLDX,CIEVEL,VOtNUM
VOLNUM DC I CL6'000045' VOLUME SERIAL NUMBER
ALEVEL DC I CL2'A' INDEX STRUCTURE NAMES
BLEVEL DC I CL4'A.B' FOLLOWED BY BLANKS
L- CLEVEL
________ ~
DC ._____ I _________________________________________________
_____ ~
CL6'A.B.C' WHICH DELIMIT FIELDS J
r---------T----------T-------------------------------------------------,
I Name I Operation I Operand I
~---------+----------+-------------------------------------------------~
I I INDEX I DELETL DELETE INDEX LEVEL C FROM I
I I Check Exceptional Returns INDEX STRUCTURE A.B.C I
I DELETE I CAMLST I DLTX,LEVELC I
I _________
L LEVELC I __________
~ DC ~I _________________________________________________
CL6'A.B.C' ONE BLANK FOR DELIMITER JI
14
index B cannot. Assigning an alias to a high level index effectively
provides aliases for all data sets cataloged under that index.
Example: In the following example, index level A is assigned an alias
of x. The search for the index level starts on the system residence
volume.
r---------T----------T-------------------------------------------------,
I Name I Operation I Operand I
~---------+-----.-----+-------------------------------------------------i
I I INDEX I ALIAS BUILD AN ALIAS FOR A HIGHI
I I Check Exceptional Returns LEVEL INDEX I
I ALIAS I CAMLST I BLDA,DSNAME"DSALIAS I
I DSNAME I DC I CL8'A' MUST BE 8-BYTE FIELDS I
IL _________
DSALIAS iI __________
DC iI _________________________________________________
CL8'X' JI
r---------T----------T-------------------------------------------------,
I Name I Operation I Operand I
~---------+----------+-------------------------------------------------i
I I INDEX I DELALIAS DELETE AN ALIAS FOR A I
I I Check Exceptional Returns HIGH LEVEL INDEX I
I DELALIASI CAMLST I DLTA,ALIAS I
IL _________
ALIAS iI ______
DC . ____ iI ________
CL8'X' - - -______________________________________
MUST BE 8-BYTE FIELD JI
r---------T----------T-------------------------------------------------,
I Name I Operation I Operand I
~---------+----------+-------------------------------------------------~
I I INDEX I CONNECT CONNECT TWO CON- I
I I Check Exceptional Returns TROL VOLUMES WHOSE I
I CONNECT I CAMLST I LNKX,INDXNAME,OLDCVCL,NEWCVOL SERIAL NUMBERS AREI
I INDXNAMEI DC I CL8'HIGHINDX' 000155 AND 001555. I
I OLDCVOL I DC I CL6'000155' I
IL _________
NEWCVOL I __________
~
DC ~
I _________________________________________________
CL6'001555' JI
r---------T----------T---------------------'----------------------------,
I Name I Operationl Operand I
~---------+----------+------------------,-------------------------------~
I I INDEX I DISCNECT DISCONNECT TWO CONTROL I
I I Check Exceptional Returns VOLUMES I
I DISCNECTI CAMLST I DRPX,INDXNAME I
IL_________ DC
INDXNru~EIL __________ LI _________________________________________________
CL8'HIGHINDX' MUST BE 8-BYTE FIELD JI
16
location of an 8-byte area into which you have placed the name of the
high level index of the control volume to be disconnected.
r---------T----------T---------~---------------------------------------,
I Name I Operation I Operand I
~---------+----------+-------------------------------------------------~
I I CATA:LOG I ADDABC CATALOG DATA SET A.B.C. THE I
, I Check Exceptional Returns INDEX STRUCTURE A.B. EXISTS I
I ADDABC I CAMLST I CAT,DSNAME"VOLUMES I
I DSNAME I DC , CL6'A.B.C' ONE BLANK FOR DELIMITER I
I VOLUMES I DC I H,. 2' TWO VOLUMES I
I , DC , X'30002001' 2311 DISK STORAGE I
, , DC , CL6'000014' VOLU~E SERIAL NUMBER ,
, I DC , H' 0' DATA SET SEQUENCE NUMBER I
, I DC I X'30002001' 2311 DISK STORAGE I
, , DC I CL6'000015' VOLUME SERIAL NUMBER I
, _________ , __________
L ~ DC , _________________________________________________
~ H'O' SEQUENCE NUMBER J,
r---------T-----------T-------------------------------------------------,
'Name I Operation, Operand I
~---------+----------+-------------------------------------------------~
I I CATALOG I REMOVE REMOVE REFERENCES TO DATA I
I I Check Exceptional Returns SET A.B.C FROM THE CATALOG I
I REMOVE I CAMLST I UNCAT,DSNAME I
L DSNAME I ___________
I _________ ~ DC I _________________________________________________
~CL6'A.B.C' ONE BLANK FOR DELIMITER JI
r---------T----------T-------------------------------------------------,
I Name I Operationl Operand I
~---------+----------+-------------------------------------------------~
CATALOG I RECATLG RECATALOG DATA SET A.B.C,
Check Exceptional Returns ADDING A NEW VOLUME
POINTER TO THE VOLUME
RECATLG CAMLST RECAT,DSNAME"VOIUMES LIST.
DSNAME DC CL6'A.B.C' ONE BLANK FOR DELIMITER
VOLUMES DC H' 3' THREE VOLUMES
DC X'30002001' 2311 DISK STORAGE
DC CL6'000014' VOLUME SERIAL NUMBER
DC H' 0' SEQUENCE NUMBER
DC X'30002001' 2311 DISK STORAGE
DC CL6'OOOOlS' VOLUME SERIAL NUMBER
DC H'O' SEQUENCE NUMBER
DC X'30002001' 2311 DISK STORAGE
DC CL6'000016' VOLUME SERIAL NUMBER
DC H'O' SEQUENCE NUMBER
---------~----------~-------------------------------------------------
The CATALOG macro-instruction points to the CAMLST macro-instruction.
RECAT, the first operand of CAMLST, specifies that a data set be
recataloged. DSNAME, the second operand, specifies the wain storage
location of an area into which you have placed the fully qualified name
of the data set to be recataloged. VOLUMES, the fourth operand,
specifies the main storage location of the volume list you have built.
HOW TO READ A DATA SET CONTROL BLOCK FROM THE VOLUME TABLE OF CONTENTS
You can read a data set control block (DSCB) into main storage by
using the OBTAIN and CAMLST If-acro-instructions. There are two waY3 to
specify the DSCB that you want read: by using the name of the data set
associated with the DSCB, or by using the atsolute track address of the
DSCB.
When you specify the name of the data set, a forroat 1 DSCB is read
into main storage. To read a DSCB other than a format 1 LSCB, you must
specify an absolute track address. <DSCB formats and field descriptions
are contained in the System control Block publication).
18
When a data set name is: specif ied, the 96-byte data portion of the
format 1 DSCB, and the absolute track address of the DSCB are read into
main storage. When the absolute track address cf a DSCB is specified,
the 44-byte key portion and the 96-byte data portion of the DSCB are
read into main storage.
Example: In the following example, the format 1 DSCB for data set A.B.C
is read into main storage. The serial nurrber of the volume containing
the DSCB is 770655.
r---------T-----·-----T-------------------------------------------------,
I Name I Operation I Operand I
~---------+----------+-------~-----------------------------------------i
I I OBTAIN I DSCBABC READ DSCB FOR DATA I
I I Check Exceptional Returns SET A.B.C INTO MAINI
I DSCBABC I CAMLST I SEARCH,DSABC,VOLNUM,WORKAREA STORAGE AREA NAMED I
I DSABC I DC I CL44'A.B.C' WORKAREA. 96-BYTE I
I VOLNUM I DC I CL6'770655' DATA PORTION IS I
I WORKAREAI DS I OD READ. THE REST OF I
I I DS I 350C THE AREA IS USED BYI
IL _________ I __________ I _________________________________________________
~ ~
THE OBTAIN ROUTINE JI
Volumes are processed in the order that they appear in the volume
list. Those volunles that are pointed to at the beginning of the list
are processed first. If a volume is not mounted, a rressage is issued to
the operator requesting him to mount the voluroe. You can indicate the
I/O device on which unmounted volumes are to be mounted by loading
register 0 with the address of the UCB associated with the device to be
used. When the volume is mounted, processing continues. If you do not
load register 0 with a UCB address, its contents rrust be zero.
If the operator cannot mount the requested volume, he issues a reply
indicating that he cannot fulfill the request. A condition code is then
set in the last byte of the volume pointer for the unavailable volume,
and the next volume indicated in the volume list is processed or
requested.
Example: In the following example, data set A.B.C is deleted from two
volumes. The expiration date in the format 1 DSCB is ignored.
r---------T----------T-------------------------------------------------,
I Name I Operation I Operand I
~---------+----------+-------------------------------------------------~
SR I 0,0 SET REG 0 TO ZEROI
SCRATCH I DELABC DELETE DATA SET I
Check Exceptional Returns A.B.C. FROM TWO I
DELABC CAMLST I SCRATCH,DSABC"VOLIST"OVRD VOLUMES, IGNORING I
DSABC DC I CL44' A. B. C' THE EXPIRATION I
VOLIST DC I B'2' DATE IN THE DSCB. I
DC I X'30002001' 2311 DISK STORAGE I
DC I CL6'000017' VOLUME SERIAL NO. I
DC I H'O' SEQUENCE NUMEER I
DC I X'30002001' 2311 DISK STORAGE I
DC I CL6' 000018' VOLUME SERIAL NO. I
L _________ ~
DC
__________~
I _________________________________________________
H'O' SEQUENCE NUMBER JI
20
volumes on which the data set is stored. The first two bytes of the
list indicate the number of volume pointers that follow. Each 12-byte
volume pointer consists of a 4-byte device code, a 6-byte volume serial
number, and a 2-byte data set sequence number. The sequence number is
always zero for direct-access volumes. (Device codes are contained in
Appendix B of this chapter.)
Volumes are processed in the order they appear in the volume list.
Those volumes that are pointed to at the beginning of the list are
processed first. If a volume is not mounted, a message is issued to the
operator requesting him to mount the volume. You can indicate the I/O
device on which unmounted volumes are to be mounted by loading register
o with the address of the UCB associated with the device to be used.
When the volume is mounted, processing continues. If you do not load
register 0 with a UCB address, its contents must be zero.
If the operator cannot mount the requested volume, he issues a reply
indicating that he cannot fulfill the request. A condition cede is then
set in the last byte of the volume pointer for the unavailable volume,
and the next volume indicated in the volume list is processed or
requested.
Example: In the following example, data set A .. B.C is renamed D.E.F.
The data set extends across two volumes.
r---------T----------T-------------------------------------------------,
I Name I Operation I Operand I
~---------+----------+-------------------------------------------------~
SR I 0,0 SET REG 0 TO ZEROI
RENAME I DSABC CHANGE DATA SET I
Check Exceptional Returns NAME A.B.C. TO I
DSABC CAMLST I RENAME,OLDNAI'<1E,NEWNAME, VOLIST D.E.F I
OLDNAME DC I CL44'A.B.C' I
NEW NAME DC I CL44'D.E.F' I
VOLIST DC I H' 2' TWO VOLUI"1ES I
DC I X'30002001' 2311 DISK STORAGE I
DC I CL6' 000017' VOLUME SERIAL NO. I
DC I H'O' SEQUENCE NUMBER I
DC I X'30002001' 2311 DISK STORAGE I
DC I CL6' 000018' VOLUME SERIAL NO. I
. DC
_________ __________
~ I _________________________________________________
~ H' 0 ' SEQUENCE NUMBER JI
r----------------------------T---------------------------------------------------------------------~---------------------------------------------------T
I I Macro-Instructions Required to Perform Function I 1 list-addrx
I Function r------------------T--------------~--------------------------------------------------------------------------------------+ points to the parameter list <labe
I I Name I Operation I Operands I list-name) set up by the CAMLST mac
~----------------------------+------------------+---------------+--------------------------------------------------------------------------------------+ instruction.
I Read a block from the I [symbol] ! LOCATE ! list-addrx 1 I
I catalog - by name I [list-name) I CAMLST I NAME,dsname-relexp6, [cvol-relexp7],area-relexp9 I
~----------------------------+------------------+---------------+--------------------------------------------------------------------------~===--------+ 2 name-rele:A-P
I Read a block from the I [symbol] I LOCATE I list-addrx 1. I specifies the main storage location of
I catalog - by location I [list-name] I CAMLST I BLOCK,ttr-relexp3,[cvol-relexp7],area-relexp9 I fully qualified name of a data set or in
~--------.
I
--------------------+------------------+---------------+--------------------------------------------------------------------------------------+
Build an index I [symbol] I INDEX I list-addrx1 I
level. The name cannot exceed 44 characte
If the name is less than 44 characters.
I I [list-name] I CAMLST I BLDX,name-relexp2, [cvol-relexp7] I must be followed by a blank. The name must
~----------------------------+------------------+---------------t--------------------------------------------------------------------------------------+ defined by a C-type Define Constant (
I Build a generation I [symbol] I INDEX I list-addrx 1 I instruct~on.
I index I [list-name] I CAMLST I BLDG,name-relexp2, [cvol-relexp7]" [DELETE15], [EMPTy16] ,n'.lmber-absexp17 I
~----------------------~-----+------------------+---------------+--------------------------------------------------------------------------------------+
I Assign an alias I [symbol] I INDEX I list-addrx 1 I
I I [list-name] I CAMLST I BLDA,index name-relexp5, [cvol-relexp7],alias name-relexp10 I 3 ttr-relexp
~----------------------------+------------------+---------------t--------------------------------------------------------------------------------------+ specifies the main s~orage location of
, Delete an index I [symbol] I INDEX I list-addrx1 I 3-byte relative track address (TTR). T
I I [list-name] I CAMLST I DLTX,name-relexp2, [cvol-relexp7] I address indicates the position. relative
~----------------------------+------------------+---------------+--------------------------------------------------------------------------------------+ the beginning of the catalog data set, of
I Delete an alias I [symbol] I INDEX I list-addrx 1 I track containing the block (TT), and the bl
I I [list-name) I CAMLST I DLTA, index name-relexp5, [cvol-relexp7] I identification on that track (R).
~----------------------------+------------------+---------------+--------------------------------------------------------------------------------------+
I Connect control I [symbol] I INDEX I list-addrx 1 I
I volumes I [list-name) I CAMLST I LNKX,index name-relexp5,[cvol-relexp7J,new cvol-relexp12 I " cchhr-relexp
~----------------------------+------------------+---------------+-----------------------------------~--------------------------------------------------+ specifies the main storage location of
I Disconnect control I [symbo~] I INDEX i list-addrx~ ! 5-byte absolute track address (CCHHR) a
I volumes I [list-name) I CAMLST I DRPX,index name-relexp5, [cvol-addrx 7 ] I DSCB.
~----------------------------+-----------------~+--------------~--------------------------------------------------------------------------------------+
I Catalog a data set I [symbol] I CATALOG I list-addrx 1 I
I I [list-name) I CAMLST I CAT,name-relexp2,[cvol-relexp7],vol list- r e lexp13 I 5 index name-relexp
~----------------------------+------------------+---------------+------------------------------------~-------------------------------------------------+ specifies the main storage location of
I Remove data set refer- I [symbol] I CATALOG I list-addrx1 I name of a high level index. The area t
I ences from the catalog I [list-name] I CAMLST I UNCAT,name-relexp2,[cvol-relexp7] I contains the name must be eight bytes Ie
~----------------------------+------------------+---------------+--------------------------------------------------------------------------------------+ The name must be defined by a c-type Def
I Recatalog a data set I [symbol] I CATALOG I list-addrx 1 I Constant (DC) instruction.
I I [list-name] I CP~LST I RECAT,name-relexp2, [cvol-relexp7],vol list-relexp13 I
~----------------------------+------------------+---------------+--------------------------------------------------------------------------------------+
I Read a DSCB from the I [symbol] I OBTAIN llist-addrx 1 I 6 dsname-relexp
I VTOC - by name I [list-name] I CAMLST I SEARCH,dsname-relexp6,vol-relexpB,wk area-relexp1~ I specifies the main storage location of a f~
~----------------------------+------------------+---------------t--------------------------------------------------------------------------------------1 qualified data set name. The area t
I Read a DSCB from the I [sYKillol] I OBTAIN I list-addrx 1 I contains the name must be 44 bytes long.
I VTOC - by location I [list-name] I CAMLST I SEEK,cchhr-relexp~,vol-relexpB,wk area-relexp1~ I name must be defined by a C-type Def
~----------------------------+------------------+---------------f--------------------------------------------------------------------------------------1 Constant (DC) instruction.
I Delete a data set I [symbol] I SCRATCH I list-addrx1 I
I I [list-name] I CAMLST I SCRATCH,dsname-relexp 6"vollist-relexp13,,[OVRD1B] I
7 cvol-relexp
~----------------------------+------------------+---------------+--------------------------------------------------------------------------------------1 specifies the main storage location 0:
I Change the data set I [symbol] I RENAME I list-addrx 1 I
6:byte volume serial number for the volum,
I name in a DSCB I [list-name] I
~----------------------------L------------------~-----__________ _____________________________________________________________________________________ +
CAMLST I RENAME,dsname-relexp6,new name-relexp11,vol list-relexp13
~-
I
be processed. If this parameter is not sp'
=====_____________________________________________________________________________________________________________________________
IL___ Note:The superscript numbers refer to the enumerated list of explanations for the operands. ._________________ I ~
fied, the system residence volume is p:
essed.
B vol-relexp
specifies the main storage location of
6-byte serial number of the volume on wi
the required DSCB is stored.
9 area-relexp
specifies the main storage location 0
26S-byte work area that you must define.
work area must begin On a double-word bou
rYe The first 256 bytes of the work area 1
Maintaining
lintain and Modify the Catalog and VTOC
-----------------------------------------------------------------------------------------------------------------------T
Macro-Instructions Required to Perform Function I 1 list-addrx 10 alias name-relexp
---------------T-------------.-----·---------------------------------,--------------------------------------------+
Name 1 Operation I Operands I
points to the parameter list (labeled specifies the main storage location of the
list-name) set up by the CAMLST macro- name that is to be used as an alias for a high
--------------+---------------+-------------------------------------------------------------------------------------+
[symbol] I LOCATE I list-addrx 1 I
instruction. level index. The area that contains the name
[list-name] i CAMLST i NAME,dsname-relexp6, [cvol-relexp7],area-relexpg i must be eight bytes long. The name must be
.:2 _____ ._,....1 .......... _ defined ny a C-type Define Constant (DC)
----------------+--------------~-------------------------------------------------------------------------------------+ !:' instruction.
[symbol] i LOCATE i list-addrx 1. I
J..1Cl.1UC -..L CoL'C ......
Control is always returned to the instruction that follows the LOCATE, INDEX, CATALOG, OBTAIN, SCRATCH, or RENAME macro-instr'lJ;ction. If the function has
been performed successfully. register 15 contains zeros. Oth€rwise.register 15 contains a condition code that indicates the reason for the failure.
The condition codes for the macro-instructions are as follows:
r----------------------------------------------------,
r----------------------------------------~-----------,
I INDEX Macro-Instruction ! r----------------------------------------------------l
( CATALOG Macro-Instruction i
i LOCATE Macro-Instruction I ~----------------------------------------------------i ~----------------------------------------------------~
~----------------------------------------------------1 Code Interpretation Code Interpretation I
Code Interpretation I
4 Either the required control volume was not 4 Either the required control volume was not I
4 Either the required control volume was not mounted, or the specified volume does not mounted, or the specified volume does not
mounted or the specified volume does not contain a catalog data set (SYSCTLG).
I
contain a catalog data set (SYSCTLG). I
contain a catalog data set (SYSCTLG). The I
volume serial number of the required vol- 8 The existing catalog structure is incon- 8 The existing catalog structure is incon-
ume is contained in bytes 260-265 of the sistent with the operation performed.
I
sistent with the operation performed. I
work area. Because the INDEX macro-instruction uses Because the INDEX macro-instruction uses I
the search routine of the LOCATE macro- the search routine of the LOCATE macro-
8 One of the names of the qualified name was instruction, register 1 contains the instruction, register 1 contains the
not found. Register 0 contains the number condition code that would be given by the condition code that would be given by the
of the last valid name in the qualified LOCATE macro-instruction, and register 0 LOCATE macro-instruction, and register 0
name. For example, if the qualified name contains the number of index levels contains the number of index levels
A.B.C.D were specified, but name C did not referred to during the search. referred to during the search.
exist at the level specified, register 0
~ould contain the binary code 2. The work 12 An attempt was made to delete an index or 12 Not used with the CATALOG macro-
area contains the first index block of the generation index that has an alias or has instruction.
last valid index name, the serial number indexes or data sets cataloged under it.
of the volume containing the index (in The index is unchanged. 16 The index structure necessary to catalog
bytes 260-265), and the relative track the data set does not exist.
address (in bytes 257-259) of the next 16 The qualified name specified when building
index block. an index or generation index implies an 20 Space is not available on the specified
index structure that does not exist: the control volume.
12 Either an index, an alias, or a control high level index, specified when connect-
volume pointer was found when the list of ing control volumes, does not exist. 24 An attempt was made to catalog an
qualified names was exhausted. improperly named generation data set.
20 Space is not available .on the specified
16 A data set resides at some level of index control volume. 28 A permanent I/O error was found when
other than the lowest index level speci- processing the catalog.
fied. Register 0 contains toe number of 24 Not used with the INDEX macro-instruction. t - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -______________ J
simple names referred to before the data I
set was found. For example, if the quali- 28 A permanent I/O error was found when I
fied name A.B.C.D were specified, and a IL _________________
processing- __________________________________ JI
the catalog.
data set were found cataloged at A.B.C,
L 3.
register 0 would contain the binary code r----------------------------------------------------,
t SCRATCH Macro-Instruction I r----------------------------------------------------,
I RENAME Macro-Instruction I
I ~----------------------------------------------------i ~----------------------------------------------------~
I 20 A syntax error exists in the name (e.g., Code Interpretat ion I Code Interpretation
i nine characters, a double delimiter, blank )
I name field, etc.). 4 No volumes containing any part of the data i 4 No volumes containing any part of the data
I set were mounted, nor was a UCB address I set were mounted, nor was a UCE address
I 24 A permanent I/O error was found when contained in register o. I contained in register o.
I processing the catalog. I
I 8 An unusual condition was encountered on I 8 An unusuaL condition was encountered on
I If the LOCATE macro-instruction fails to perfo~m one or more volumes. I one or more volumes.
I its function for any of the reasons indicated I
I above, register 0 contains the number of indexes After the SCRATCH macro-instruction is executed, I After the RENAME macro-instruction is executed,
IL ___________________________________________________
,i
searched before the failure was encountered. _ the last byte of each 12-byte volume pointer in I the last byte of each 12-byte volume pointer in
the volume list indicates the following condi- I toe volume list indicates the following condi-
tions in binary code: tions in binary code:
Interpretation
I Code Interpretation
o The DSCB for the data set has been deleted I
r-----------------------------·-----------------------, from the VTOC on the volume pointed to. I o The DSCB for the data set has been renamed
I OBTAIN Macro-Instruction I I in the VTOC on the volume pointed to.
~----------------------------------------------------~ 1 The VTOC of this volume does not contain I
I Code Interpretation I the DSCB to be de leted. I 1 The VTOC of this volume does not contain
I J I the DSCB to be renamed.
I 4 The required volume was not mounted. I 3 The DSCB was not deleted because either I
I I the OVRD option was not specified or the I 3 A DSCB containing the new name already
I 8 The DSCB was not found in the VTOC of the J
retention cycle has not expired. I exists in the VTOC of this volume.
I specified voIume. I I
I I 4 A permanent I/O error was found when I 4 A permanent I/O error was found when
I 12 A permanent 1,0 error was found when I processing this volume. I processing this volume. I
IL____________________________________________________
processing the specified volume. JI
I I
5 A device for mounting this volume was I 5 A device for mounting this volume was I
unavailable. I unavailable. I
I i
6 The operator was unable to mount this I 6 The operator was unable to mount this I
volume.
____________________________________________________ JI IL __________________________________________________
volume. JI
24
APPENDIX A: CATALOG BLOCK ENTRIES
Control Entries
Pointer Entries
Field 1: Name Field (8 bytes) -- contains the name of the index being
pointed to by field 2.
A data set pointer entry can appear in any index. It contains the
simple name of a data set ana from one to five 12-byte fields that each
identify a volume on which the named data set resides. If the data set
resides on more than five volumes, a volume control block n:ust be used
to point to the volumes. The volume control block is identified by a
volume control block pointer entry, not a data set pointer entry.
Field 1: Name Field (8 bytes) -- contains the simple name of the data
set whose volurres are identified in field 5.
A volume control block pointer entry can appear in any index. It can
identify up to 20 volurres. The entry is 14 bytes long and contains four
fields.
26
Field 1: Name Field (8 bytes) contains the last name of the
qualified name of the data set identified by this entry. The data set
resides on the volumes whose serial numters are given in the volurre
control block pointed to by field 2.
Field 2: Address Field .(3 bytes) -- contains the relative track address
of the volume control block identifying the volumes containing the data
set named in field 1. The address is in the form ~TR.
Field 1: Name Field (8 bytes) -- contains a high level index name that
appears in the volume index of the control volume identified in field 4.
Field 1: Name Field (8 bytes) -- contains the alias of the high level
index identified in field 2.
Field 4: True Name Field (8 bytes) -- contains the name of the index
whose alias appears in field 1. The address of the index is in field 2.
28
APPENDIX B: DEVICE CODE DESIGNATIONS
Device Code
Designation
Device Features (In Hexadecimal>
PREREQUISITE PUBLICATIONS
The IBM System/360 Operating System:
Assembler Language publication (Form
C28-6514) contains the information neces-
sary to code programs in the assemtler
language.
The IBM System/360 Operating System:
Control Program Services publication (Form
C28-6541) describes the system macro-
instructions that can be used in programs
coded in the assembler language.
Because your SVC routine will be a part cf the control program, you
must follow the same programming conventions used in SVC routines
supplied with System/360 Operating System.
Four types of SVC routines are su~plied with System/360 Operating
System, and the programming conventions for each type differ. The
general characteristics of the four types are described in the following
text, and the programming conventions for all types are shown in tabular
form.
Characteristics of SVC Routines
All SVC routines operate in the supervisor state. You should keep
the following characteristics in mind when deciding what type of SVC
routine to write:
32
Table 1. Programming conventions for SVC Routines
r---------------------T-----------T------T---------T--------T----------,
I I I I I IReference I
I Conventions I Type 1 IType 21 Type 3 IType 4 I Code I
I I I I I I I
~---------------------t-----------t------t---------t--------t----------~
Ipart of resident I Yes I Yes I No I No I I
Icontrol program I I I I I I
~----------------------t-----------t------t---------t--------t----------~
ISize of routine I Any I Any I ~ 1024 lEach I I
I I I I 1:ytes Iload I I
I I I I I module I I
I I I I I ~ 1024 I I
I I I I l1:ytes I I
~---------------------t-----------t------t---------t--------t----------~
IReenterable routine I Optional, I ~es I Yes I Yes I 1 I
I Ibut rrust I I I I I
I Ibe seriallyl I I I I
I I reusable I I I I I
~---------------------t-----------t------t---------t--------t----------~
IMay allow inter- I No I Yes I Yes I Yes I 2 I
Iruptions I I I I I I
~---------------------t-----------~------~---------~--------+----------~
IEntry point I~ust be the first 1:yte of the routinel I
I lor load module, and must be on a I I
I I double-word 1:oundary I I
~---------------------+-------------------------------------t----------i
INumber of routine INumbers assigned to your SVC routines I I
I Ishould be in descending order from I I
I 1 2 5 5 through 200 I I
~----------------------t-----------T------T---------~-------t----------i
IName of routinE; IIGCnnn IIGCnnnlIGCOOnnn IIGCssnnnl 3 I
~---------------------t-----------~------~---------~--------t----------i
IRegister contents at IRegisters 3, 4, 5, and 14 contain I 4 I
lentry time Icommunication pointers; registers 0, I I
I 11 , and 15 are parameter registers I I
~---------------·------t-----------T------T---------T--------+----------i
IMay contain reloca- I Yes I Yes I No* I No* I 5 I
Itable data I I I I I I
~---------------------t-----------t------+---------t--------t----------~
ICan supervisor re- I Not I Yes* I Yes* I Yes* I 6 I
Iquest block (SVRB) belapplica1:le I I I I I
I extended I I I I I I
~---------------------t-----------t------t---------t--------t----------~
IMay issue WAIT macro-I No I Yes* I Yes* I Yes* I 7 I
I instruction I I I I I I
~---------------------t-----------t------t--------·-t--------t----------~
IMay issue XCTL macro-I No I No I No I Yes* I 8 I
I instruction I I I I I I
~---------------------t-----------t------t---------t--------t----------~
IMay pass contral to I None I Any I Any I Any I I
Iwhat other types of I I I I I I
ISVC routines I I I I I I
~---------------------t-----------t------~-·------~-~--------t----------i
IType of linkage with I Not I Issue supervisor call I I
lather SVC routines lapplicable I (SVC) instruction I I
~---------------------t-----------~-------------------------t----------~
IExit from SVC Routine I Branch using return register 14 I I
~---------------·------t-----------T-------------------------t----------i
IMethod of abnormal IUse resi- IUse ABEND I 9 I
I termination Ident abnor-Imacro-instruction or I I
I Imal termi- Iresident abnormal I I
I Ination rou-Itermination routine I I
IL _____________________ Itine
~ ___________ I _________________________ I __________ JI
~ ~
34
Reference SVC Routine
Code Types Reference Notes
36
INSERTING SVC ROUTINES INTO THE CONTROL PROGRAM
You insert SVC routines into the control program during the system
generation process.
Before yo~r SVC routine can be inserted into the control program, the
routine must be a member of a cataloged partitioned data set. You must
name this data set SYS1.name.
The following text gives a description of the information you must
supply during the system generation process. You will find a descrip-
tion of the macro-instructions required during the system generation
process in the publication IBM System/360 Operating System: System
Generation, Form C28-6554.
Specifying SVC Routines
You use the SVCTABLE macro-instruction to specify the SVC number, the
type of SVC routine, and, for type 2, 3, or 4 routines, the number of
double words in the extended save area.
Inserting SVC Routines During the System Generation Process
To insert a type 1 or 2 SVC routine into the resident control
program, you use the RESMODS macro-instruction. You must specify the
name of the partitioned data set and the names of the members to be
inserted into the control program. Each member can contain more than
one SVC routine.
To insert a type 3 or 4 SVC routine into the SVC library, you use the
SVCLIB macro-instruction. You must specify the name of the partitioned
data set and the names of members to be included in the SVC library.
The member names must conform to the conventions for naming type 3 and 4
routines, i.e., IGCOOnnn and IGCssnnn.
PREREQUISITE PUBLICATIONS
The IBM System/360 Operating Systew:
Assemtler Lan~ publication (Forrr
C28-6514) contains the information neces-
sary to code programs in the assemtler
language.
The IBM System/360 Operating System:
Control Program Services publication (Forrr
C28-6541) descrites the system macro-
instructions that can be used in prograws
coded in the assembler language.
1Job running time and step running time are not supplied unless you have
selected multiprogramming with a variable nurrter of tasks and intsrval
timing. However, if only timing is selected, you can use the timer
macro-instructions in your accounting routine. An explanation of these
features is contained in the publication IBM System/360 Operating
System: Storage Estimates, Form C28-6551.
40
Output from the Accounting Routine: You can write output in two ways:
by issuing console messages or by using the standard systerr output.
1. Console messages -- You can use Write to Operator (WTO) or Write to
Operator with Reply (WTOR) macro-instructions.
2. System output -- You must assemble the following calling sequence
into your routine. The contents of register 12 must be the saThe as
when your accounting routine was entered, and register 13 must
contain the address of an area cf 64 full words.
r---------T----------T-------------------------------------------------,
I Name I Operation I Operand I
t---------+-----------+-------------------------------------------------~
I I MVC I 36(4,12),MSGADDR MOVE MESSAGE ADDRESS AND I
I I MVC I 42(2,12),MSGLEN LENGTH TO SYSTEM TABLE. I
I I L I REG15,VCONYS BRANCH AND LINK TO MESSAGE I
I I BALR I REG14,REG15 ROUTINE I
I I I I
I I I I
I MSGADDR I DC I A(MSG) I
I MSG I DC I C'text of message' I
I MSGLEN I DC I H'two character length of ~essage' I
IL- VCONYS
________ I ___________
~
DC ~
I _________________________________________________
V(IEFYS) JI
Exit from the Accounting Routine: You can use the RETURN macro-
instruction to restore the contents of registers and return control to
the operating system.
You can insert your accounting routine into the control prograrr
either before or after the systere generation process. In either caSE,
you must specify that you have an accounting routine. This is done
during the system generation process ty using the ACCTRTN option in the
SCHEDULR macro-instruction.
Inserting an Accounting Routine Befcre System Generation
18K Scheduler
Step Termination Job Termination
ALIAS GO,IEFYN ALIAS IEFZA,IEFW23SD
ENTRY IEFSDOll ENTRY IEFZA
NAME IEFSTERM(R) NAME IEFJTERM(R)
lOOK Scheduler
INCLUDE SYSLMOD(IEFSTERM)
ALIAS GO,IEFYN
ENTRY IEFSDOll
NAME IEFSTERlvJ (R)
INCLUDE SYSLMOD(IEFJTERM)
ALIAS IEFZA,IEFW23SD
ENTRY IEFZA
NAME IEFJTERM(R)
42
NONSTANDARD LABEL PROCESSING ROUTINES;
VOLUME LABEL AND DUAL-DENSITY TAPE DEVICE
EDITOR ROUTINES
Prerequisite Publications
The IBM System/360 Operating System:
Assembler Language publication (Forrr
C28-6514) contains the information neces-
sary to code programs in the assemtler
language.
The IBM System/360 Operating system:
Control Prograrr Services publication (For~
C28-6541) describes the macro-instructions
that are used to request services from the
control program.
The IBM System/360 Operating System:
System control Block publication (Form
C28-6628) contains format illustraticns and
field descriptions of the system control
blocks referred to in this chapter. This
publication also describes the format and
fields of standard magnetic tape latels.
The IBM System/360 Operating Systen~:
Data Management publication (Ferm C28-6537)
discusses magnetic tape labeling.
44
is entered again after the control program has checked the initial label
and positioned the tape.
You need not: reposition the tape before returning control to the
control program.
Programming Conventions
This section describes the conventions to be followed when writing
your routines.
46
r----------------------------------------------------------------------,
Data
Control
Block
Data
Control
Block
Data
Control
Block
Data
Control
Block
~. Work
and
Control
Block
Area
Work
and
Control
Block
Area
Work
and
Control
Block
Area
Work
and
Control
Block
Area
~---------------,-------------------------------------------------------~
Register 5 contains the starting address of a list of DCB addresses.
Each DCB specified in the OPEN or CLOSE macro-instruction has a
4-byte entry in the list. The DCBs to which the entries point are
in the problem prograro.
For each DCB specified in the OPEN or CLOSE macro-instruction, a
combined work and control block area is built. Register 6 contains
the starting address of a table that contains an address for each
work and control block area. The addresses of the areas are
contained in t~he low-order three bytes of 8-byte entries. The list
of 8-byte entries begins 32 bytes from the starting address of the
table. The format of the combined work and control block area is
shown in Figure 2.
- -__________________________________ - _________________________________ J
Work Area
(100 bytes)
~----------------------------------------------------------------------~
I Each of the fields within the work and control block area can be I
I addressed by your nonstandard label processing routines. The I
I IECDSECT macro-instruction defines the symbolic names of all these I
I fields. (The macro-definition and how to add it to the macro- I
I library are in the Appendix of this chapter.) Code this macro- I
I instruction (with a null operand field and immediately preceded by a I
I DSECT statement) in the list of constants for each of your I
I nonstandard label processing routines. Using the starting address I
I of the work area as a base, you are able to address any field I
IL ______________________________________________________________________
symbolically. JI
48
General Logic Flow of a Nonstandard Label Processing Routine: The
general flowcharts in Figures 3, 4# and 5 show the logic that you could
use in your routines. Each block in the flowcharts is numbered, and the
number corresponds to an item in the list of explanations of the blocks.
(20)
Obtain Restore
Main Registers
Storage
(3) (21)
Save Release
Registers Main
Storage
B
(22)
Return to
Control Program
No
(13)
Set Up Set Up
CCW CCW
(16) (18)
Adjust Create
for Next Label
DCB
(18)
50
Entry from (1)
Control Program
(20)
Obtain (2)
Restore
Main Registers
Storage
(3) (21)
Save Release
Registers Main
Storage
(9) (22)
Set Bit
in UCB
to 0
(10)
Determine
Type of I/O
Operation
(13)
Set Up
CCW
(14)
. - - - - - - . . , (16)
Yes Process
Label
.----...1....-.--, (\9)
Set Bit
in UCB
to 1
4. TO locate the address of the data control block (DCB) , use the
contents of register 5. To determine if the DCB is open, test bit
3 of the DCBOFLGS field of the DCB; if this bit is zero, the DCB
has not been opened. (The symbolic names of all fi¢lds in the DCB
are defined by the DCBD macro-instruction.)
7. The final DCB entry in the list of DCB addresses contains a one in
its high-order bit position.
9. Set the high-order bit to zero in the SRTEDMCT field of the UCB.
Bits o 1 2 3 4 5 6 7
x 0 o 1 x x x x REREAD
x 0 1 1 x x x x LEAVE
x 0 o 0 x x x x Neither REREAD nor LEAVE
x x x x 0 0 o 0 INPUT
x x x xli 1 1 OUTPUT
x x x x 0 0 1 1 INOUT
x x x x 0 1 1 1 OUTIN
x x x x 0 0 o 1 RDBACK
x x x x 0 1 o 0 UPDAT
11. To determine the mode of the data set, test the high-order bit of
the DCBOFLGS field of the DCB. If this bit is one, the data-set
mode is output; if this bit is zero, the data-set mode is input.
(The symbolic names of all fields in the DCB are defined by the
DCBD macro-instruction.)
52
12. You may want to position the tape if you have closed an input data
set before all data has been read.
13. Move your CCW into the channel program area of the control
program's work area. (The symbolic name of the first entry in the
channel program area is DXCCW.)
15. Techniques used to check for correct volume will differ depending
on the label formats used in the installation.
16. Label processing routines will differ ty label format.
17. If a write operation is requirea, this block can be used.
18. Issue an EXCP macro-instruction specifying the address of the
control program's lOB. (The symbolic name of thE lOB is DXIOB.)
19. Set the high-order bit to 1 in the SRTEDMCT field of the UCB.
1. The name of the module you are transferring tc is ffioved to the first
8 bytes of the table pointed to by register 6 (see Figure 1).
2 DXCCW12 addresses an eight-byte field that way be used for the remote
supervisor parameter list required by the E-form of the XCTL
macro-instruction.
The following coding sequence illustrates an exit from your routine
during end-of-volume operations.
MVC DXCCW12+16(8),MODNAME
LA 15,DXCCW12+8
LA 0, DXCCW12+16
XCTL EPLOC=(O) ,DCB=O,SF=(E, (15»
MODNAME DC C'IGGxxxxx'
- --
The IECDSECT macro-instruction, discussed in the appendix to this
chapter, defines the name DXCCW12. The DCB= parameter of the XCTL
macro-instruction must be coded DCB=O in this application.
Nonstandard Label
Processing Routine Control Program Routine Member Name
54
SECTION 2: VOLUME LABEL AND DUAL-DENSITY TAPE DEVICE EDITOR ROUTINES
When writing data sets on magnetic tape (OUTPUT or OUTIN specified in
the OPEN macro-instruction) conflicts may be detected between:
1. The label type specified by the program and the label type on the
currently mounted volume.
PROGRAMMING CONVENTIONS
Your editor routines must conform to the same general programming
conventions as the nonstandard label processing routines discussed in
section I of this chapter (see section I - Programming Conventions) in
so far as size, design, register usage, entry points, and work areas are
concerned.
You must name the first (or only) module of your routines as follows:
OMODVOL1 the editor routine associated with OPEN
EMODVOL1 the editor routine associated with EOV
If your editor routines consist of more than one load module, nawes
for the additional modules must begin with the prefix OMODVOL for the
OPEN routine. EMODVOL for the EOV routine. Transfer between the modules
must be by name.
As discussed in Section I of this chapter, you must use EXCP
prograrrming to perform the needed input/output operations.
ENTRY CONDITIONS
Figure 6 presents the four conditions under which the control program
OPEN or EOV routines transfer control to your editor routines, and the
general action the editor routine takes to permit processing on the
current volume to continue. The first two conditions arise only when
the tape voluwe is mounted on a dual-density tape device.
Entry from the EOV routines occurs when a volume switching operation
is necessary and any condition noted in Figure 6 is present.
')6
r-------------T---------------T------~-T-------------------------------,
I I ITransferl I
I Program IMounted Volume IOccurs I I
ISpecificationlCharacteristicslon a IPossible Editor Routine Action I
~-------------+-.--------------+--------+-------------------------------~
ISL - 800 or ISL -- CD I DC1 I Overwrite the standard labell
11600 BPI 1 I Iwith a standard latel. Thel
I density I I Ifirst write from loadpoint sets 1
I I I Ithe recording density on al
I I I Idual-density device. (See Fig-I
I I I lure 7 or 8 -- blocks 15b, 161
I I I land explanation). I
~-------------+---------------+--------+-------------------------------~
INSL2 - 800 orlNSL O~ NL -- COl DC1 IWrite a tapemark to set den-I
11600BPI 1 I Isity. The prograre specifica-I
I density I I Ition NSL will cause control tol
I I I Ibe given to your nonstandard I
I I I I label routines after return tol
I I 1 IOPEN or BOV. (See Figure 7 -I
I I I I blocks 15, lSb, 16. If your I
I I I linstallation supports protec-I
I I I Ition and retention data check-I
I I I ling NSL volumes, see block 6). I
t-------------+---------------+--------+--------------------------------~
ISL INSL or NL3 I LC IWrite a standard volume label. I
I I I I (See Figure 7 - blocks 15, lSa,1
I I I 11 6. If your installation sup-I
I I I Iports protection and retention I
I I I Idate checking on NSL volumes, I
I I I I see block 6). I
~-------------+---------------+--------+-------------------------------~
INL or NSL ISL3 I LC IOverwrite standard label with al
I I I Itapemark, i.e. "cancel." (Seel
I I I IFigure 7 - blocks 15, 15a, 16).1
I I I IDepending on whether NL or NSLI
I I I I is specified by the program, I
I I I IOPEN or EOV will either posi-I
I I I Ition tape (NL) or transfer con-I
I I I Itrol to your nonstandard labell
I I I I routines (NSL) when control isl
I I I I returned to them. I
~-------------~--,-------------~--------~-------------------------------~
Legend:
SL - standard volume label
NSL - nonstandard volume label
NL - no volume label
DC - density check
LC - label check
CD - Conflicting density. The volume has teen previously written
on, or in a, recording density other than that specified by the
program. The recording density on a dual-density device is set
by sensing the density of the mounted volume.
58
(1)
Entry From
Control Program
(2)
Obtain
Main
Storage
Establish
Addressibil ity
of Control
Information
8--~ (15b)
(15a)
Get Label Type
Test Bits 1-2 From
in JFCBLTYP
JFCBMASK+5
Field
Write a
Standard
Volume Label
or Tapemark
(17)
Zero UCB
Vol Ser No. and
Set Mount
Switch "ON"
Rewind and
Unload
Current
Volume
Return to
(13)
Control Program
Issue
Mount
Message
(4)
0---
...--_ _-L-_ _- ,
Establish
Addressibil ity
of Control (ISb)
Information
Get Label Type
Test Bits 1-2
From
in
JFCBLTYP
JFCBMASK+S
Field.
Write a
Standard
Vol ume Label
or Tapemark
(17)
(20)
Restore
Registers
Insert X'03'
in Reg 8
(21)
Release
Main
Rewind and Storage
Unload Current
Volume
(22)
Return to
Control Program
60
LOGIC BLOCK EXPI,ANATIONS
When you receive control from the EOV routine, general register 2
contains the address of the DCB for the oata set and general
register 4 contains the address of the work and control block area
associated with the DCB.
You will also need to address the unit control block (UCB) for the
device on which the tape volume is mounted. The address of the UCB
may be obtained from the DXDEBUCB field of the data extent block
defined by the IECDS£CT macro-instruction. The IEFUCBOB macro-
instruction (see Appendix) defines the fields of the unit control
block.
To perform t:he I/O operation, move your CCWs into the channel
progran; field of the work and control tlock area. The synibolic
name for the first entry in this field is DXCCW. Then issue an
EXCP macro-instruction specifying trle address of the control
62
information for the label identifier (VOLIABI), the label sequence
number (VOLNO), and the volume serial number (VOLSERNO) fields, and
record the balance of the label as blanks.
You enter VOL in the label identifier field, a 1 in the label
sequence number field, and a six character serial number in the
volume serial number field. Note: To ensure that two or more tape
volumes carrying the same serial number are not produced, write to
the operator at this point for assignment of a serial number.
Data set header labels 1 and 2 are constructed by the OPEN or EOV
routines after control is returned to them.
Note: If you desire, at this point, you may change the control
block settings to conform to the characteristics of the tape volume
mounted, i.e., reset the label type field in the JFCB to conform
with the type of label on the volume mounted, and change the
density field in the DCB to the density of the tape mounted.
17. The syrrbolic name for the volume serial number field in the unit
control block is SRTEVOLI. The "mount switch" is the high order
bit of the field named SRTEDMCT in the unit control block. These
fields are defined by the IEFUCBOB macro-instruction. Exclusive
OR(XC) the SRTEVOLI field with itself. OR(OI) the SRTEDMCT field
with X'80'.
18. When receiving control from the OPEN routine, you must process the
entire DCB list. The last entry in the list can be recognized by a
"1" in bit 0 of the first byte in the entry.
19. You increment the pointer to the DCB address list by four bytes.
You must also increment the pointer to the work and control block
area for each DCB. You increment this pointer by 8 bytes.
20. Use the load multiple instruction (LM). Note: When preparing to
return to EOV you must insert a hexadecimal 03 in Register 8.
21. Use the FREEMAIN macro-instruction.
22. Return control to the OPEN or EOV routines via an XCTL macro-
instruction, specifying the module to be given control as follows:
Return From To Module
OMODVOL1 IGG0190A (OPEN)
EMODVOLl IGG0550P (EOV)
Note: OPEN and EOV will rewind the volume upon receiving control from
OMODVOL1 or EMODVOL1.
Return is via the XCTL macro-instruction (E-form). See Section 1
Explanation of Logic Blocks -- item 22.
ENTRY OMODVOLl
NAME OMODVOL1(R)
ENTRY EMODVOLl
NAME EMODVOL1(R)
/*
Caution: You should not attempt to insert routines into the SVC library
when you are running in a multi-tasking environment. Also, if your
label editor routines (for OPEN or EOV) consist of more than one module
you must have requested space for the SVC library directory entries for
the additional modules at the time the system was generated.
64
APPENDIX: IECDSECT,IEFJFCBN, AND IEFUCBOB MACRO-INSTRUCTIONS
If you want to use the IECDSECT,IEFJFCBN and IEFUCBOB macro-
instructions, you must either add these roacro-definitions to the
macro-library (SYSi.MACLIB) or place them in a separate partitioned data
set and concatenate this data set to the macro-library. This section
contains the following:
• The forn,ats of the macro-instructions.
• The Job Control and utility stateroents needed to add the rnacro-
definition to the library.
• The macro-definition to be added to the library.
IECDSECT MACRO-INSTRUCTION
This macro-instruction defines the syrrbolic names of all fields in
the work area used by the OPEN, CLOSE, TCLOSE, and EOV routines. Code
this macro-ins"truction with blank name and operand fields, and precede
it with a DSECT statement. Note: The IEFJFCBN rracro-instruction is used
in the assembly of IECDSFCT. The macro-definition for IEFJFCBN nlust be
present in the macro-library (SYSi.MACLIB) for successful definition of
all fields in the work area.
r------T-----------T---------------------------------------------------,
I Name ~ Operation I Operand I
~------+-----------+---------------------------------------------------i
I
L ______ I ____________
~
IECDSECT I ___________________________________________________ JI
~
r----------------------------------------------------------------------,
//jobnaroe JOB {parameters}
//stepname EXEC PGM=IEBUPDAT,PARM=NEW
//SYSPRINT DD SYSOUT=A
//SYSUT2 DD DSNAME=SYSi.MACLIB,DISP=OLD
//SYSIN DD DATA
./ ADD IECDSECT,OO,O,l
IECDSECT Macro-Definition
./ ENDUP
/*
L ___________________________________ ~ __________________________________ J
IECDSECT Macro-Definition
MACRO
IECDSECT
SPACE 1
* THIS MACRO IS USED TO DEFINE THE WORK AREA
FOR ALL MODULES OF OPEN,CLOSE,TCLOSE
* AND END OF VOLUME FOR O/S 360
* SPACE 1
THIS MACRO DEFINES A WORK AREA WITH THE
* FOLLOWING FORMAT
* SPACE 1
1.LABELS AND DSCB
*
Label processing Routines 65
LABELS
* VOLUME LABEL
* FILE LABEL 1
* FILE LABEL 2
* DSCB
* FORMAT 1
* FORMAT 3 KEY
* FORMAT 3 DATA
* CORE ADDRESS OF NEXT DSCB
*
>I< MESSAGE AREA ••••••••••••••. 100 BYTES
2.JFCB •••••••.•••••••.••••.••••. 176 BYTES
* 3.ECB ••••.••••••••••.••••.•••••••• 4 BYTES
01< 4.IOB •.•.••••••••••••..•••••••••• 40 BY_TES
S.DEB ••••••.••••••••••••••••••.•• 44 BYTES
* 6.DCB •.••••••.••..•.•••.•••••••.•. 4 BYTES
* 7 • CCW S ••••••.•••••••••••••••.••• 96 BYTES
* SPACE 1
* TOTAL *** 464 BYTES
SPAC.E 2
* ***
-* ***
* ***
* ***
SPACE 1
* VOLUME LABEL
SPACE 1
DXLBL DS OCL80
VOLLABI DS CL3 LABEL IDENTIFIER
VOLNO DS CLl VOLUME LABEL NUMBER
VOLSERNO DS CL6
VOLSEC DS CLl
DS OCLI0 RESERVED
VOLVTOC DS CL5
DS CLS
DS CLI0 RESERVED
DS CLI0 RESERVED
VOLOWNER DS CLI0 OWNER NAME AND ADDRESS CODE
DS CL29 RESERVED
SPACE 1
FILE LABEL 1
* SPACE 1
ORG DXLBL
FLILABI DS CL3 LABEL IDENTIFIER
FLINO DS CLl FILE LABEL NUMBER
FLIID DS CL17 FILE IDENTIFIER
FLIFILSR DS CL6 FILE SERIAL NU~BER
FLIVOLSQ DS CL4 VOLUME SEQUENCE NUMBER
FLIFILSQ DS CL4 FILE SEQUENCE NUMBER
FLIGNO DS CL4 GENERATION NUMBER
FLIVNG DS CL2 VERSION NUMBER OF GENERATION
FLICREDT DS CL6 CREA'rION DATE
FLIEXPDT DS CL6 EXPIRATION DATE
FLIFSEC DC C'O' FILE SECURITY INDICATOR
FLIBLKCT DS CL6 BLOCK COUNT
FLlSYSCD DS CL13 SYSTEM CODE
FLIRES DS OCL7 RESERVED FOR FUTURE USE
DS CLl
FLlRESl DS C~6
SPACE 1
FILE LABEL 2
* SPACE 1
ORG FLIID
FL2RECFl-j DS CLl RECORD FORMAT
FL2BLKL DS CLS BLOCK LENGTH
FL2LRECL DS CLS BLOCKING FACTOR/RECORD LENGTH
66
FL2DEN DS CLl DENSITY
FL2FILP DS CLl FILE POSITION
FL2JSID DS OCL17 JOB/STEP IDENTIFICATION
FL2JOBD DS CL8 JOB IDENTIFICATION
FL2JSSP DC C'/' SLASH
F'L2STEPD DS CL8 STEP IDENTIFICATION
FL2TRTCH DS CL2 TAPE RECORDING TECHNICUE
FL2CNTRL DS CLl CARRIAGE CONTROL CHARACTER
FL2RES DS CL43 RESERVED FOR FUTURE USE
SPACE 1
* DATA SET CONTROL BLOCK
SPACE 1
ORG DXLBL
DXDSCB DS OCL96
DSCFMTID DC C'l'
DSCFILSR DS CL6 FILE SERIAL NU~BER'
DSCVOLSR DS CL2
DSCCREDT DS CL3 CREATION DATE IN DISCONTINUOUS BIN
DSCEXPDT DS CL3 EXPIRATION DATE IN DISCONTINUOUS BIN
DSCNOEXT DS CLl
DSCBLDBL DS CLl
DS CLl
DSCSYSCD DS CL13 SYSTEM CODE
DS CL7
DSCFILTY DS CL2 FILE TYPE
DSCi{BCFr~ DS CLl RECORD FORMAT
DSCOPTCD DS CLl OPTION CODE
DSCBLKL DS CL2 BLOCK LENGTH
DSCLRECL DS CL2 RECORD LENGTH
DSCKEYL DS CLl KEY LENGTH
DSCRKP DS CL2 KEY LOCATION
DSCDSIND DS CLl
DSCSCALO DS CL4
DSCLSTAR DS CL5
DSCTRBAL DS CL2
DSCEXTYP DS eLl EXT~NT TYPE INDICATOR
DSCEXTSQ DS CLl EXTENT SEQUENCE NUMB~R
DSCLOWLM DS CL4
DSCUPPLM DS CL4
DSCEXTl DS CLiO
DSCEXT2 DS CLiO
DSCNEXT DS CL5 POINTER TO NEXT RECORD
DSCCORE DS CL4 CORE ADDRESS OF NEXT DSCB RECORD
DSCBEND EQU
SPACE
*
1
* DATA SET CONTROL BLOCK -FORMAT 3- KEY PORTION
SPACE 1
ORG DXDSCB
DXDSCB3K DS OCL40
DSCBF3C DC X'03030303'
DSCBEXSK DS OCL40
DSCBEXTY DS CLl EXTENT TYPE INDICATOR
DSCBEXSQ DS CLl EXTENT SEQUENCE NUMBER
DSCBLLMT DS CL4 CCHl-i LOWER LIMIT
DSCBULMT DS CL4 CCHH UPPER LIMIT
DSCBEX2 DS CLiO ADDITIONAL EXTENT
DSCBEX3 DS CLiO ADDITIONAL EXTENT
DSCBEX4 DS CLiO ADDITIONAL EXTBNT
SPACE 1
* DATA SET CONTROL BLOCK -FORMAT 3- RECORD PORTION
SPACE 1
ORG DXDSCB
DSCBFMID DC C'3' FORMAT ID
DSCBEXSD DS OCL90 ADDITIONAL EXTENTS
DSCBEX5 DS CLiO ADDITIONAL EXTENT
68
DC AL3(DXECB)
IOBCSW DS 00
IOBCOMAD DC X'OOOOOOOO' KEY,OOOO,COMMAND ADDRESS
IOBSTATO DC X'OO' STATUS BYTE 0
IOBSTATl DC X'OO' STATUS BYTE 1
IOBCNT DC X'OOOO' COUNT
IOBSIOCC DS XLi
IOBSTART DC AL3(DXCCW)
IOBWGHT DS XLi
IOBDCBPT DC AL3(DXDCB)
DS XLi
DS XL3
IOBINCAN DC X'OOOO'
IOBERRCT DS XL2
DXDAADDR DS D DIRECT ACCESS ADDRESS (MBBCCHHR)
SPACE 1
DATA EXTENT BLOCK
* SPACE 1
DYYYY DS OCL44
DXDEB EQU DYYYY-4
DXDEBDEB DC X'OOCOOOOO'
DXDEBOFL DS OCLl
DXDEBIRB DC X'OOOOOOOO'
DXDEBSYS DC X'OOOOOOOO'
DXDEBUSR DC X'OOOOOOOO'
DXDEBECB DC X'OOOOOOOO'
DXDEBID DS OCLl
DXDEBDCB DC AL4(DXDCB)
DXDCBAD EQU DXDEBDCB
DXDEBAPP DS CL4
DXDEBMOD DS OCLl
DXDEBUCA DS F
DXDEBBIN DS H
DXDEBSCC DS H
DXDEBSHH DS H
DXDEBECC DS H
DXDEBEHH DS H
DXDEBNTR DS H
SPACE 1
DATA CONTROL BLOCK
* SPACE 1
DXXXX DS OF
DXDCB EQU DXXXX-44 POINTER TO RELATIVE BEGINNING OF DCB
DXDBDEB DC A (DXDEB)
SPACE 1
CHANNEL CONTROL WORDS
* SPACE 1
CNOP 3,8
DXCCW DS OCL96
DXCCWl DS D
DXCCW2 DS D
DXCCW3 DS D
DXCCW4 DS D
DXCCW5 DS D
DXCCW6 DS D
DXCCW7 DS D
DXCCW8 DS D
DXCCW9 DS D
DXCCW10 DS D
DXCCWll DS D
DXCCW12 DS D
SPACE 1
DSECTSIZ EQU 464 CORE AREA REQUIRED FOR THIS MACRO
MEND
r------T-----------T---------------------------------------------------,I
I Name I Operation I Operand
~------+-----------+---------------------------------------------------~
IL ______ I ___________
~
IEFUCBOB I ___________________________________________________ JI
~
r----------------------------------------------------------------------,
I //jobname JOB {Farameters}
I//stepname EXEC PGM=IEBUPDAT,PARM=NEW
I//SYSPRINT DD SYSOUT=A
I//SYSUT2 DD DSNAME=SYSi.MACLIB,DISP=OLD
I//SYSIN DD DATA
1./ ADD IEFUCBOB,OO,O,l
I
I
I
i IEFUCBOB Macro-Definition
I
I
I
J./ ENDUP
lI _____________________________________________________________________
/* _
IEFUCBOB Macro-Definition
MACRO
IEFUCBOB
UCBOB EQU * UNIT CONTROL BLOCKS
DS OF
SRTEJBNR DS XLi JOB INTERNAL NUMBER
SRTECHAN DS XLi ALLOC.CHANNEL MASK
UCBID DS XLi UCB IDENTIFICATION
SRTESTAT DS XLi STATUS BITS
SRTEONLI EQU 128 ONLINE
SRTECHGS EQU 64 CHANGE ONLINE/OFFLINE
SRTERESV EQU 32 RESERVED DEVICE
SRTEUNLD EQU 16 UNLOAD THIS DEVICE
SRTEALOC EQU 8 BIT 4 ALLOCATED
SRTEPRES EQU 4 BIT 5 PERf\ilANENTLY RESIDENT
SRTESYSR EQU 2 BIT 6 SYSRBS
OR PRIMARY CONSOLE
*
SRTEDADI EQU 1 BIT 7 DADSM INTERLOCK
OR TAPE CONTAINS
* STANDARD LABELS, OR
* ALTERNATE CONSOLE
*
UCBCHA DS XLi FLAGi AND CHANNEL ADDRESS
UCBUA DS XLi UNIT ADDRES3
UCBFL2 DS XLi FLAG2
UCBDTI DS XLi DEVIC:E TABLE
UCBETI DS XLi ERROR TABLE
UCBSTI DS XLi STATUS TABLE
UCBLCI DS XLi LOGICAL CHANN~L TABLE
UCBATI DS XLi ATTENTION TABLE
UCBWGT DS XLi ~7EIGHT
70
UCBNAME DS CL3 UNIT NAME IN 3 EBCDIC CHARACTERS
UCBTYP DS XL4 DEVICE TYPE.
UCBTBYTl EQU UCBTYP BYTE 1 OF UCBTYPE-MODEL
UCB1FEAO EQU 128 BIT 0 OF OPTION FIELD
UCB1FEA1 EQU 64 BIT 1 OF OPTION FIELD
UCB1FEA2 EQU 32 BIT 2 OF OPTION FIELD
UCB1FEA3 EQU 16 BIT 3 OF OPTION FIELD
UCB1FEA4 EQU 8 BIT 4 OF OPTION FIEIL
UCB1FEA5 EQU 4 BIT 5 OF OPTION FIELD
UCB1FEA6 EQU 2 BIT 6 OF OPTION FIELD
UCB1FEA7 FQU 1 BIT 7 OF OPTION FIELD
UCBTBYT2 EQU UCBTYP+l BYTE 2 OF UCBTYPE-OPTIONS
UCBTBYT3 EQU UCBTYP+2 BYTE 3 OF UCBTYPE-CLASS
UCB3TAPE EQU 128 BIT 0 OF CLASS - TAPE
UCB3COMM EQU 64 BIT 1 OF CLASS - COMMUNIC.
UCB3DACC EQU 32 BIT 2 OF CLASS - DIRECT AC
UCB3DISP EQU 16 BIT 3 OF CLASS - DISPLAY
UCB3UREC EQU 8 BIT 4 OF CLASS - UNIT REC.
UCB3CHAR EQU 4 BIT 5 OF CLASS - CHAR. READ
UCBTBYT4 EQU UCBTYP+3 BYTE 4 OF UCBTYPE-DEVICE
UCBLTS DS XL2 LAST 12*
UCBSNS DS XL6 SENSE INFORMATION
SRTEVOLI DS CL6 VOLUME SERIAL
SRTESTAB DS XLi STATUS B
SRTEBSVL EQU 128 BIT 0 SHARED VOLUME
SRTEBVSC EQU 64 BIT 1 VOLUME SECURITY
SRTEBALB EQU 32 BIT 2 ADDIT.VOL.LABEL PROC
SRTEBPRV EQU 16 BIT 3 PRIVATE
SRTEBPUB EQU 8 BIT 4 PUBLIC
SRTEBVQS EQU 4 BIT 5 VOLUME TO BE QUIESCE
* BIT TO MOUNT ANOThER
SRTEBJLB EQU 2 BIT 6 JOBLIB VOLUME
SRTEBNUL EQU 1 BIT 7 CONTROL VOLUME
SRTEDlvJCT DS XLi DATA MANAGEMENT COUNT
SRTEFSCT DS XL2 FILE SEQ. COUNT
SRTEFSEQ DS XL2 FILE SEQ. NUMBER
UCBSQC DS 2F SEEK QUEUE CONTROL WORD
UCBSKA DS 2F MBBCCHHR FOR LAST SEEK
SRTEUSER DS XLi CURRENT NUMBER OF USERS
SRTEECBA DS XL3 DA E<:;B ADDRESS
DATACEIL EQU * 9 OF THESE BLOCKS WILt BE P~ESENT
DCELJBNR DS XLi JOB INTERNAL
DCELUSER DS XLi CURRENT NUMBER OF USERS
DCELSTAB DS XLi STATUS B
DCELSTAT DS XLi STATUS A
DCELVOLI DS CL6 VOLUME SERIAL
DCELVTOC DS XL3 VTOC ADDRESS
DCELECBA DS XL3 DA ECB ADDRESS
MEND
IEFJFCBN MACRO-INSTRUCTION
r------T-----------T---------------------------------------------------,I
I Name I Operation I Operand
~------+-----------+---------------------------------------------------i
I
L ______ I IEFJFCBN
~----- ______ I ___________________________________________________ JI
~
r----------------------------------------------------------------------,
I //jobname JOB <parameters)
I //stepname EXEC PGM=IEBUPDAT,PARM=NEW
I //SYSPRINT DD SYSOUT=A
//SYSUT2 DD DSNAME=SYS1.MACLIB,DISP=OLD
//SYSIN DD DATA
./ ADD IEFJFCBN,OO,O,l
IEFJFCBN macro-definition
./ ENDUP
______________________________________________________________________ J
IEFJFCBN Macro-Definition
MACRO
IEFJFCBN
INFMJFCB EQU *
JFCBDSNM DS CL44 DATA SET NAME
JFCBELNM DS CL8 ELEMENT NAME OR VERSION
JFCBISDM DS CLl TASK SCHEDULER - DATA
* MANAGEMENT INTERFACE BYTE
.JFCBSYSC DS CL13 SYSTEM CODE
.JFCBLTYP DS CLl LABBL TYPE AND USER'S-LABEI
INDICATOR
* DS CLl NOT USED
JFCBFLSQ DS CL2 FILE SEQUENCE NUMBER
JFCBVLSQ DS CL2 VOLUME SEQUENCE NUMBER
JFCBMASK DS CL8 DATA MANAGEMENT MASK
JFCBCRDT DS CL3 DATA SET CREATION DATE
JFCBXPDT DS CL3 DATA SET EXPIRATION DATE
JFCBINDl DS CLl INDICATOR BYTE 1
JFCBRLSE EQU 64 BITS 0 AND 1 - EXTERNAL
* STORAGE RELEASE INDICATOR
JFCBLOCT EQU 16 BITS 2 AND 3 - DATA SET
* HAS BEEN LOCATED
JFCBNEWV EQU 4 BITS 4 AND 5 - NEW VOLUME
ADDED TO DATA SET
*
.JFCBPMEM EQU 1 .BITS 6 AND 7 - DATA SET IS
* A M~MBER OF A PODS OR GDG
JFCBIND2 DS CLl INDICATOR BYTE 2
JFCBSTAT EQU 64 BITS 0 AND 1 - DATA SET
STATUS (NEW, OLD, OR MOD)
*
JFCBSCTY EQU 16 BITS 2 AND 3 - DATA SET
* SECURITY INDICATOR
JFCBUFNO DS ~ALl
JFCBUFRQ DS ALl
JFCBFTEK DS OBLl
.JFCBF ALN DS BLl
JFCBUFL DS AL2
JFCEROPT DS BLl
JFCTRTCH DS OBLl
JFCKEYIE DS ~ALl
JFCMODE DS OBLl
.JFCCODE DS OBLl
.JFCSTACK DS OBLl
JFCPRTSP DS BLl
72
JFCDEN DS BLl
JFCLIMCT DS AL3
JFCDSORG DS BL2
JFCRECFI-1 DS BLl
JFCOPTCD DS BLl
JFCBLKSI DS AL2
JFCLRECL DS AL2
JFCNCP DS ALl
JFCNTM DS ALl
JFCRKP DS AL2
JFCCYLOF DS ALl
JFCDBUFN DS ALl
JFCINTVL DS ALl
JFCCPRI DS BJ.Jl
JFCSOWA DS AL2
JFCBNTCS DS CLl NUMBER OF OVERFLOW TRACKS
JFCBNVOL DS CLl NUMBER OF VOLUME SERIAL
NUJ.VJBERS
*
JFCBVOLS DS CL30 VOLUME SERIAL NUMBERS (THE
FIRST FIVE)
*
JFCBEXTL DS eLl LENGTH OF BLOCK OF EXTRA
VOLUME SERIAL NUMBERS
* (BEYOND FIVE)
*JFCBEXAD DS CL3 TRACK ADDRESS OF BLOCK OF
EXTRA VOLUME SERIAL NUMBERS
*
JFCBPQTY DS CL3 PRIMARY QUANTITY OF D.A.
STOHAGE REQUIRED
*
JFCBCTRI DS CLl INDICATES WHETHER CYLINDERS
TRACKS, OR RECORDS ARE
* PSECIF~ED IN JFCBPQTY AND
* JFCBSQTY
*
J" FCBSQTY DS Cl,3 SECONDARY QUANTITY OF D.A.
STORAGE REQUIRED
*
JFCBIND3 DS CLl INDICATOR BYTE 3
JFCBCNTG EQU 64 BITS 0 AND 1 - CONTIGUOUS
STORAGE INDICATOR
*
JFCBMXIG EQU 16 BITS 2 AND 3 - MAXIMUM
AVAILABLE EXTENT IMJICATOR
*
JFCBALXI EQU 4 BITS 4 AND 5 - ALL EXTENTS
* INDICATOR
JFCBRNDC EQU 1 BITS 6 AND 7 ROUND
CYLINDER INDICATOR
*
JFCBDQTY DS CL3 QUANTITY OF D.A. STORAGE
REQUIRED FOR A DIRECTORY
*
J"FCBSPNM DS CL3 CORE ADDRESS OF THE JFCB
* WITH WHICH CYLINDERS ARE
SPLIT
*
JFCBABST DS CL2 RELATIVE ADDRESS OF FIRST
TRACK TO BE ALLOCATED
*
JFCBSBNM DS CL3 CORE ADDRESS OF THE JFCB
FROM WHICH SPACE IS TO BE
* SUBALLOCATED
*
JFCBDRLH DS CL3 AVERAGE DATA RECORD LENGTH
JFCBVLCT DS CLl VOLUME COUNT
JFCBSPTN DS CLl NUMBER OF TRACKS PER
CYLINDER TO BE USED BY THIS
* DATA SET WHEN SPLIT
* CYLINDERS IS INDICATED
*
JFCBLGTH EQU 176 LENGTH OF JFCB
JFCBEND EQU *
MEND
PREREQUISITE PUBLICATIONS
74
EXECUTE CHANNEL PROGRAM (EXCP) MACRO-INSTRUCTION
EXCP REQUIREMENTS
This section describes the channel prograrr1 that you must provide in
order to issue thE EXCP macro-instruction. The control blocks that you
must either construct directly, or cause to be constructed by use of
macro-instructions, are also described.
CHANNEL PROGH.AM
The channel program supplied Ly you and executed through EXCP is
composed of channel command words (CCWs) on double-word boundaries.
Each channel command word specifies a corrmand to be executea and, for
commands initiating data transfer, the area to or from which the data is
to be transferrert. Channel corrmand word formats used with specific I/O
devices can be found in IBM Systems Reference Library publications for
each device. All channel comrrand words described in these publications
can be used, with the exception of REWIND and UNLOAD (RWU).
Data and Command Chaining
Chaining is the successive loading of channel command words into a
channel from contiguous douDle-word locations in main storage. Data
chaining occurs when a new channel command word loaded into the channel
76
defines a new storage area for the original I/O operation. Command
chaining occurs when the new channel comwand word specifies a new I/O
operation. For detailed information about chaining, refer to the IBM
System/360: principles of Operation publication (Form A22-6821).
CONTROL BLOCKS
When using the EXCP macro-instruction, you wust be familiar with the
function and structure of an input/output block (lOB), an event control
block (ECB), a data control block (DCB), and a data extent block (DEB).
Brief descriptions of these control blocks follow. Their fields are
illustrated in the section "EXCP Programming Specifications."
Input/Output Block (lOB)
78
COMPLETION OF CHANNEL PROGRAM
The system considers the channel program completed when it receives
an indication of a channel end conditien. When channel end occurs, the
request element for the channel prograrr is ~ade available, and a
completion code is placed into the event contrcl block. The completion
code indicates whether errors are associated with channel end. If
device end occurs simultaneously witl) channel end, errors associated
with device end (i.e., unit exception or unit check) are also accounted
for.
Device End Errors
If device end occurs after channel end and an error is associated
with device end, the completion code in the event control block does not
indicate the error. However, the status of th~ unit and channel is
saved in the unit control block (UCB) fer the device, and the UCB is
marked as intercepted. The input/output block for the next request
directed to the I/O device is also rrarked as intercevted. The error is
assurLied to be permanent, and the completion code in the event control
block for the intercepted request indicates interception. The IFLGS
field of the data control block is also flagged to indicate a permanent
error. It 3hould be noted that when a Write T2pe Mark or Erase Long Gap
CCW is the last (or only) CCW in your channel progran', the I/O
Supervisor will not attempt recovery procedures for Device End errors.
In these circumstances, cOITrrand chaining a NOPCCW to your Write Tape
Mark or Erase Long Gap CCW ensures initiation of device end error
recovery procedures.
To be prepared for device end errors, you should be familiar with
device characteristics that can cause such errors. After one of your
channel programs has terminated, you should not release buffer space
until you have determined that your next request for the device has not
been interceptea. You may reissue an intercepted request.
APPENDAGES
This section discusses the appendages that you may optionally code
when using the EXCP macro-instruction. Before a programmer-written
appendage can be executed, it must be included in the SVC library.
These procedures are explained first; descriptions of the routines
themselves and of their coding specifications follow.
DEFINING APPENDAGES
An appendage must be defined in a DD statement as a member of a SYSl
partitioned data set. The full member narre of an appendage is eight
bytes in length, but the first six bytes are required by IBM standards
to be the characters IGG019. The last two characters must be provided
by you as an identification; they may range in collating sequence from
WA to Z9.
80
CHARACTERISTICS OF APPENDAGES
An appendage is a programmer-written routine that provides additional
control over I/O operations during channel program execution. By
providing appendages, you can examine the status of I/O operations and
determine the actions to be taken for various conditions. An appendage
may receive control before a start input/output (SIO) instruction is
issued, or ~hen one of the following occurs:
82
If you use the return address in register 14 to return control to the
system, the abnormal end appendage is entered. An end-of-extent error
code is placed in the "ECB code" field of the input/output block for
subsequent posting in the event control block.
You may use the following optional return addresses:
MACRO-INSTRUCTIONS
If you are using the EXCP macro-instruction you must also use DCB,
OPEN, CLOSE, and, in some cases, the EOV macro-instruction. The
parameters of these macro-instructions, and of the EXCP macro-
instruction itself, are listed and explained here. A diagram of the
data control block is included with the description of the DCB
macro-instruction.
DCB -- Define Data Control Block for EXCP
The EXCP form of the DCB macro-instruction produces a data control
block that can be used with the EXCP macro-instruction. You must issue
a DCB macro-instruction for each data set to be processed by your
channel programs. Notation conventions and format illustrations of the
DCB macro-instruction are given in the publication IBM System/360
Operating System: Control Program Services, Form C28-6S41. DCB parame-
ters that apply to EXCP may be divided into four categories, depending
on the following portions of the data control block that are generated
when they are specified:
• Foundation block. This portion is required and is always 12 bytes
in length. You must specify the two parameters in this category.
• EXCP interface. This portion is optional. If you specify any
parameter in this category, 20 bytes are generated.
• Foundation block extension and cowmon interface. This portion is
optional and is always 20 bytes in length. If this portion is
generated, the device dependent portion is also generated.
• Device dependent. This portion is optional and is generated only if
the foundation block extension and common interface portion is
84
generated. Its size ranges from 4 to 20 bytes, depending on
specifications in the DEVD parameter of this category. However, if
you do not specify the DEVD parameter (and the foundation extension
and common interface portion is generated), the maximum 20 bytes for
this portion are generated.
Some of the procedures performed by the system when the data control
block is opened and closed (such as writing file marks for output data
sets on direct-access volumes) require information from optional data
control block fields. You should rrake sure that the data control block
is large enough t:o provide all information necessary for the procedures
you want the system to handle.
Figure 9 shows the relative position of each portion of an opened
data control block. The fields corresponding to each parameter of the
DCB macro-instruction are also designated, with the exception of DDNAME,
which is not included in a data control block that has been opened. The
fields identified in parentheses represent system inforrr.ation that is
not associated with parameters of the DCB macro-instruction.
Sources of information for data control block fields other than the
DCB macro-instruction are data definition (DD) statements, data set
labels, and data control block modification routines. You may use any
of these sources to specify DCB parameters. However, if a portion of
the data control block is not generated by the DCB macro-instruction,
the system does not accept information intended for that portion from
any alternative source.
FOUNDATION BLOCK PARAMETERS:
DDNAME=symbol
specifies the name of the data definition (DD) statement that
describes the data set to be processed.
MACRF=(E)
specifies that the EXCP macro-instruction is to be used in
processing the data set.
EXCP INTERFACE PARAMETERS:
EOEA=symbol
specifies the 2-byte identification of an end-of-extent appendage
that you have entered into the SVC library.
PCIA=symbol
specifies the 2-byte identification of a program controlled
interruption (PCI) appendage that you have entered into the SVC
library.
SIOA=symbol
specifies the 2-byte identification of a start I/O (SIO) appendage
that you have entered into the SVC library.
CENDA=symbol
specifies the 2-byte identification of a channel end appendage that
you have entered into the SVC library.
XENDA=symbol
specifies the 2-byte identification of an abnormal end appendage
that you have entered into the SVC library.
Note: The full name of an appendage is eight bytes in length, but the
first six bytes are required by IBM standards to be the characters
IGG019. You provide the last two characters as the 2-byte identifi-
cation; they may range in collating sequence from WA to Z9.
+16
~----------T--------------------------------1
I I I
+20 I BUFNO I BUFCB I
~----------L----------T---------------------1
I I I Common
+24 I BUFL I DSORG I Interface
~---------------------L---------------------i
I I
+28 I IOBAD I
~----------T--------------------------------~
I BFTEK, I I
+32 I BFALN I EO DAD I
~----------+--------------------------------i Foundation Block
I I I Extension
+36 I RECFM I EXLST I
~----------L----------T---------------------i
I I I
+40 I (TIOT) I MACRF I
~----------T----------L---------------------1
I I I
+44 I (IFLGS) I (DEB Address) I Foundation Block
~----------+--------------------------------1
I I I
+48 I (OFLGS) I Reserved I
~----------L--------------------------------~
I I
+52 I Reserved I
~-------------------------------------------i
I I
+56 I Reserved I
~---------------------T---------------------i
I I I
+60 I EOEA I PCIA I EXCP Interface
~---------------------+---------------------~
I I I
+64 I SIOA I CENDA I
~---------------------+---------------------~
I I I
+68 IL _____________________
XENDA LI _____________________
Reserved JI
86
EODAD=relexp
specifies the address of your end-of-data set routine. If this
routine is not available when it is required, the task is
abnormally terminated.
DSORG=code
specifies the data set organization as one of the following codes.
Each code indicates that the format of the device dependent portion
of the data control block is to be similar to that generated for a
particular access method:
IOBAD=relexp
specifies the address of an input/output block (lOB). If a pointer
to the current lOB is not required, you may use this field for any
purpose.
The following parameters are not used ty the EXCP routines but
provide cataloging information about the data set. This information can
be used later by access method routines that read or update the data
set.
RECFM=code
specifies the record format of the data set. Record format codes
are given in the IBM System/360 Operating System: Control Program
Services publication.
BFTEK={SIE}
specifies the buffer technique as either simple or exchange.
BFALN={FID}
specifies the word boundary alignment of each buffer as either full
word or double word.
BUFL=absexp
specifies t.he length in bytes of each tuffer; the maxiwum length is
32,767.
BUFNO=absexp
specifies the nurober of buffers assigned to the associated data
set; the maximum number is 255.
BUFCB=relexp
specifies the address of a buffer pool control block, i.e., the
8-byte field preceding the buffers in a buffer pool.
DEVD=code
specifies the device on which the data set may reside as one of the
following codes. The codes are listed in order of descending space
requirements for the data control block:
Code Device
DA Direct-access
TA Magnetic tape
PT Paper tape
PR Printer
PC Card punch
RD Card reader
~ote: If you do not wish to select a specific device until job set up
1:ime, you should specify the device type requiring the largest area.
DCB r-------T---------------------,
Address + 4 IReservdl I
~ _______ J I
I I
+ 8 I (FDAD - MBBCCHHR) I
I I
I r---------------------~
+12 I I Reserved I
~-------+-------T-------------~
+16 LI KEYLEN ReservQ I _____________
_______ I _______
~
(TRBAl)
~ JI
Note: For cutput data sets, the system uses the contents of the full
disk address (FDAD-MBBCCHHR) field plus one to write a file mark when
the data control block is closed, provided the track balance lTRBAL)
field indicates that space is availatle. You must maintain the contents
of these two fields yourself if the system is to write a file mark.
Device dependent portion of data control block when DEVD=DA and
DSORG=IS or DA:
DCB r-------T---------------------,
_______ LI _____________________
Address +16 LIKEYLEN Reserved JI
DCB
Address +12 I
r-----------------------------,
(BLKCT) I
~------T-------T-------T------~
+16 LITRTCH IReservdlDEN IResrvdl
______ _______ _______ ______ J
~ ~ ~
88
Note: For output data sets, the system uses the contents of the block
count (BLKCT) field to write the block count in trailer labels when the
data control block is closed, or when the EOV macro-instruction is
issued. You must maintain the contents of this field yourself if the
system is to write the correct block count.
DCB r------T----------------------,
Address +16 LICODE
______ I ______________________
~
Reserved JI
DCB r------T----------------------,
Address +16 LIPRTSP
______ LI __________
Reserved
- ___________ JI
DCB r-----------T-----------------,
L ___________ I _________________
Address +16 IMODE,STACK Reserved
~ JI
KEYLEN=value
specifies, for direct-access devices, the length in bytes of the
KEYLEN=value
specifies, for direct-access devices, the length in bytes of the
key of a physical record, with a maximum value of 255. When a
block is read or written, the number of bytes transmitted is the
key length plus the record length.
CODE=value
specifies, for paper tape, the code in which records are punched as
follows:
Value
I IBM BCD
F Friden
B Burroughs
C National Cash Register
A ASCII
T Teletype
N no conversion
(forrrat F records
only)
DEN=value
specifies, for magnetic tape, the tape recording density in bits
per inch as follows:
TRTCH=value
specifies, for 7-track magnetic tape, the tape recording technique
as follows:
Value, Tape Recording Technique
C Data conversion feature is available.
STACK=value
specifies, for a card punch or card reader, the stacker bin to
receive cards as either 1 or 2.
PRTSP=value
specifies, for a printer, the line spacing as either 0, 1, 2, or 3.
90
INPUT - Header labels are verified.
RDBACK - Trailer labels are verified.
OUTPUT - Header labels are created.
iob-addrx
specifies the address, or a register that contains the address of
the input/output block of the channel program to be executed.
For magnetic tape, you must issue EOV when either a tape mark is read
or a reflective spot is written over. In these cases, bit settings in
the i-byte OFLGS field of the data control block determine the action to
be taken when EOV is executed. Before issuing EOV for magnetic tape,
you must make sure that appropriate bits are set in OFLGS. Bit
positions 2,3,6, and 7 of OFLGS are used only by the system; you are
concerned with bit positions 0,1,4, and 5. The use of these OFLGS bit
positions is as follows:
Bit 0
indicates that a tape mark is to be written.
Bit 1
indicates that a backwards read was the last I/O operation.
Bit 4
indicates that data sets of unlike attributes are to be concatenat-
ed.
Bit 5
indicates that a tape mark has been read.
92
Note: When CLOSE is issued for data sets on magnetic tape volumes,
labels are processed according to bit settings in the OFLGS field of the
data control block. Before issuing CLOSE for magnetic tape, you must
set the appropriate bits in OFLGS. The OFLGS bit positions that you are
concerned with are listed in the description of the EOV macro-
instruction.
lOB
Address
+4
+8
+12 All
Devices
+16
+20
+24
+28
+32 Direct-
Access
Devices
+36
Only
94
Extent M (1 byte)
specifies, for direct-access or telecorr.munications devices, which
extent entry in the data extent block is associated with tne
channel program. (0 indicates the first extent; 1 indicates the
second, etc.)
BBCCHER (7 bytes)
specifies, for direct-access devices, the seek address for tne
programmer's channel program.
Event Control Block Fields
You must define an Event control tlock as a 4-byte area on a
full-word boundary. When the channel program has been completed, the
input/output supervisor places a' completion cede containing status
information into the event control block (Figure 11). Before examining
this information, you must test for the setting of the "Complete Bit."
If the complete bit is not on, and the problem program cannot perform
other useful operations, you should issue a WAIT macro-instruction that
specifies the event control block. Under no circumstances may you
construct a program loop that tests for the complete bit.
r----------T----------T------------------------------------------------,
I WAIT I Complete I Remainder of Completion Cede I
J Bi t=O I I I
IL __________ I __________
~ Bit=l I ________________________________________________ JI
~
o 1 2 31
Completion Code
This code, which includes the WAIT and Complete bits, may be one of
the following 4-byte hexadecimal expressions:
Code Interpretation
7FOOOOOO Channel program has terminated without error.
41000000 Channel program has terminated with permanent
error.
42000000 Channel program has terminated because a
direct-access extent address has been violated.
44000000 Channel program has been intercepted because of
perrranent error associated with device end for
previous request. You may reissue t~~ inter-
cepted request.
48000000 Request element for channel program has been
maoe availatle aftEr it has been purged.
4FOOOOOO Error r~covery routines have been entered
because of direct-access error but are unable
to read horoe address or record O.
96
APPENDIX: RESTORE MACRO-INSTRUCTION
If you want to use the RESTORE macro-instruction, you must either add
the macro-definition to the macro-litrary (SYS1.MACLIB) or place it in a
separate partitioned data set and concatenate this data set to the
macro-library. This section contains the following:
RESTORE Macro-Instruction
r------T-----------T---------------------------------------------------,I
I Name I Operation I Operand
~------+-----------+---------------------------------------------------~
IL ______ LI ___________
RESTORE LI ___________________________________________________
User Purge lOB Address JI
The user purge lOB address is in the data extent tlock (DEB).
r----------------------------~-----------------------------------------,
//jobname JOB {parameters}
//stepname EXEC PGM~IEBUPDAT,PARM=NEW
//SYSPRINT DD SYSOUT=A
//SYSUT2 DD DSNAME=SYS1.MACLIB,DISP=OLD
//SYSIN DD DATA
./ ADD RESTORE,OO,O,l
RESTORE Macro-Definition
./ ENDUP
/*
RESTORE Macro-Definition
MACRO
&NAME RESTORE &LIST
AIF ('&LIST' EQ ").E1
&NAME IHBINNRA &LIST LOAD REG 1
SVC 17 ISSUE SVC FOR RESTORE
MEXIT
.El IHBERMAC 01,150 LIST ADDR MISSING
PREREQUISITE PUBLICATION
The IBM Systero/360 Operating System:
Data Managewent putlication (Form C28-6537)
explains the standard procedures fer I/O
processing under the operating system.
98
EXECUTE DIRECT ACCESS PROGRAM (XDAP) MACRO-INSTRUCTION
r-----------T----------------------------------------------------------,I
I Operation I Operand
.-----------+----------------------------------------------------------~
I XDAP I ecb-symbol,type-{RIWIV}{IIK},dcb-addr,area-addr I
L I
I ___________ L __________________________________________________________
,length-value,[(key-addr,keylength-value)],blkref-addr JI
ecb-symbol
specifies the symbolic name to be assigned to the XDAP control
block.
type-{RIWIV}{IIK}
specifies the type of I/O operation intended for the data set and
the method by which blocks of the data set are to be located. The
codes and their meanings are as follows:
100
R - Read a block.
W- Write a block.
V - Verify contents of a block but do not transfer data.
I - Locate a block by identification. (The key portion, if
present, and the data portion of the block are read or
written. )
K - Locate a block by key. (Only the data portion of the
block is read or written.)
dcb-addr
specifies the address of the data control tlock of the data set.
area-addr
specifies the address of an input or output area for a block of the
data set.
length-value
specifies the number of bytes to be transferred to or from the
input or output area. If blocks are to be located by identifi-
cation and the data set contains keys, the value must include the
length of the key. The maximum number of bytes transferred is
32767.
key-ador
specifies, when blocks are to be located by key, the address of a
main storage field that contains the key of a block to be read or
overwritten.
keylength-value
specifies, when blocks are to be located by key, the length of the
key. The maximum length is 255 tytes.
blkref-addr
specifies the address of a main storage field containing the actual
device addrless of the track containing the 1::lock to be located.
When blocks are to be located by key, this field is seven bytes in
length; when blocks are to be located by identification, an eighth
byte indicating block identification must be included in this
field. (The actual address of a block is in the form MBBCCHHR,
where M indicates which extent entry in the data extent block is
associated with the direct-access program; BB indicates the bin
number of direct-access volurre; CC indicates the cylinder address;
HH indicates the actual track address; and R indicates the block
identification.)
EOV End of Volume
The EOV mac:ro-instruction identifies end-of-volume and end-of-data
set conditions. For an end-of-volume condition, EOV causes switching of
volumes and verification or creation of standard labels. For an
end-of-data set condition, EOV causes your end-of-data set routine to be
entered. When using XDAP, you issue EOV if switching of direct-access
volumes is necessary, or if secondary allocation is to be performed for
a direct-access data set opened for output.
The only parameter of the EOV macro-instruction is the address of the
data control block of the data set.
CLOSE -- Restore Data Control Block
The CLOSE macro-instruction restores one or more data control blocks
so that processing of their associated data sets can be terminated. You
must issue CLOSE for all data sets that were used by the direct access
channel program. Some of the procedures performed when CLOSE is
executed are:
The event control block begins on a full word boundary and occupies
the first 4 bytes of the XDAP control block. Each time the direct-
access channel program terminates, the input/output supervisor places a
completion code containing status inforrr.ation into the event control
block (Figure 12). Before examining this information, you must test for
the setting of the "Complete Bit" by issuing a WAIT macro-instruction
specifying the event control block.
r--------------T------------------T------------------------------------,
IL ______________ I __________________ I ____________________________________
WAIT Bit=O ~
Complete Bit=l ~
Remainder of Completion Code JI
o 1 2 31
WAIT Bit
A one bit in this position indicates that the WAIT macro-
instruction has been issued, but that the direct-access channel
program has not been completed.
Corrplete Bit
A one bit in this position indicates that the channel program has
been completed; if it has not been completed, a zero bit is in this
position.
Completion Code
This code, which includes the WAIT and Complete bits, may be one of
the following 4-byte hexadecimal expressions:
Interpretation
7FOOOOOO Direct-access program has terminated without
error.
102
48000000 Request elerrent for channel program has been
made availatle after it has been purged.
4FOOOOOO Error recovery routines have been entered
because of direct-access error but are unable
to read howe address or record O.
r----------------.----------T-----T-------------------------------------,
I Type of I/O Operation I CCW I Coromand Code I
~--------------------------+-----+-------------------------------------~
I Read by Identification I 1 I Search ID Equal I
I I 2 I Transfer in Channel I
I Verify by Identification 1 1 3 I Read Key and Data I
~----------------.----------+-----+-------------------------------------~
I Read by Key I 1 I Search Key Equal I
I I 2 I Transfer in Channel I
I Verify by Key1 I 3 I Read Data I
~----------------.----------+-----+-------------------------------------~
I I 1 I Search ID Equal I
I Write by Identification I 2 I Transfer in Channel I
I I 3 I Write Key and Data I
~--------------------------+-----+-------------------------------------~
I I 1 I Search Key Equal I
I write by Key I 2 I Transfer in Channel I
I I 3 I Write Data I
~----------------.----------i-----i------------------- __________________ ~
I 1For verifying operations, the third CCW is flagged to suppress the I
IL ______________________________________________________________________
transfer of information to main storage. JI
XDAP OPTIONS
CONVERSION OF RELATIVE TRACK ADDRESS TO ACTUAL ADDRESS
To issue XD1~P, you must provide the actual device address of the
track containing the block to be processed. If you know only the
relative track address, you can convert it to the actual address by
using a resident system routine. The entry point to this conversion
routine is labeled IECPCNVT. The address of the entry point is in the
communication veGtor table (CVT). The address of the CVT is in location
16. (The CVT maGro-instruction defines the symtolic names of all fields
in the CVT. The macro-definition and how to add it to the macro-library
are in the Appendix of this chapter.)
Register Use
o Must be loaded with a 4-byte value of the form
TTRN, where TT is the number of the track
relative to the ceginning of the data set, R is
the identification of the block on that track,
and N is the concatenation number of the data
set. (0 indicates the first or only data set
in the concatenation, 1 indicates the second,
etc. )
1 Must ce loaded with the address of the data
extent block (DEB) of the data set.
APPENDAGES
For additional control over I/O oferations, you may write appendages,
which must be entered into the SVC library. Descriptions of these
routines and their coding specifications are contained in the "EXCP
Macro-Instruction" section of this publication.
Note: The BLKREF parameter is ignored ty the "L" form of the XDAP
macro-instruction. The field may be supplied in the E-form of the
macro-instruction or moved into the lOB by you.
104
APPENDIX: CVT MACRO-INSTRUCTION
If you want to use the CVT macro-instruction, you must add the
macro-definition to the macro-library (SYS1.MACLIB). This secticn
contains the following:
• The format of the CVT macro-instruction.
• The Job Control and Utility statements needed to add the rnacro-
definition to the library.
• The macro-definition to be added to the library.
Format of the CVT Macro-Instruction
This macro-instruction defines the symbolic names of all fields in
the communication vector table (CVT). When coding this macro-
instruction, you must precede it with a DSECT statement. The format of
the macro-instruction is as follows:
r------T--------'---T---------------------------------------------------,
I Name I Operation I Operand I
~------+--------,---+---------------------------------------------------~
I I I VMS I
I I CVT SYS= INT
I I
L MIN
I ______ LI ___________ LI ___________________________________________________ JI
You specify, in the operand field, the control program that you are
using.
VMS
designates mUltiprogramming with a variable number of tasks.
INT
designates multiprogramming with a fixed number of tasks.
MIN
designates the primary control program.
If the operand field is blank, it is assumed that you are using
multiprogramming with a variable number of tasks.
Control Statements Reguired
r----------------------------------------------------------------------,
//jobname JOB {parameters}
//stepname EXEC PGM=IEBUPDAT,PARM=NEW
//SYSPRINT DD SYSOUT=A
//SYSUT2 DD DSNAME=SYS1.MACLIB,DISP=OLD
//SYSIN DD DATA
./ ADD CVT,OO,O,l
CVT Macro-Definiticn
./ ENDUP
/*
L _______________________________________________________________________ J
CVT Macro-Definition
MACRO
&NAME CVT t~SYS=VMS, &FETCH=, &SCHED=PSS, &OPTIONS= (QTAM, INTERVAL)
106
.NEXT3 ANOP
CVTQTEOO DC V(IEAQTEOO) ADDR OF TIMER ENQUEUE ROUTINE
CVTQTDOO DC V (IEAQTDOO) ADDR OF TIMER DEQUEUE ROUTINE
.NEXT4 ANOP
CVTSTB DC V(IECSTB) ADDRESS OF I/O DEVICE STATISTICS TABLE.
CVTDCB DC V (IFBDCB) DCB ADDR.FOR LOGR~C DATA SET USED BY SER.
CVTIOQET DC V(IECIOQET) ADDRESS OF I/O QUEUE ELEMEN~ TABLE.
CVTIXAVL DC V (IECIXAVL) POINTER TO NEXT AVAILABLE I/O QUEUE ELMNT
CVTNUCB DC A (0) LOWES~ ADDRESS NOT IN THE NUCLEUS--- AT
A 2K BOUNDARY IF PROTECTION---AT A DOUBLE
* WORD BOUNDARY IF NO PROTECTION.
*
CVTFBOSV DC V (IEWFBOSV) ADDRESS OF PROGRAM FETCH ROUTINE.
CVTODS DC V(IEAODS) ENTRY POINT ADDRESS OF THE DISPATCHER.
CVTILCH DC V(IECILCH) ADDRESS OF THE LOGICAL CHANNEL TABLE.
CVTIERLC DC v (IECIERLC) ADDRESS OF THE ERROR LOGICAL CHAN. QUEUE.
AIF ('&SCHED' EQ 'PPS' OR '&SCHED' EQ 'PSS').NEXTS
CVTl\ljSER DC A(O)
AGO .. NEX'I'6
.NEXTS ANOP
CVTMSER DC V(IEEMSER)
.NEXT6 ANOP
CVTOPT01 DC V(IEAOPT01) BRANCH ENTRY POINT TO POST ROUTINE.
AIF ('&OPTIONS(l)' EQ 'QTAM').NEXT7
CVTTRMTB DC A(O)
AGO .. NEXTB
.NEXT7 ANOP
CVTTRMTB DC v ( IECTRl.VJTB ) ADDR OF TERMINAL TABLE PRESENT IN SYSTEMS
WITH QTAM
*.NEXTB ANOP
CVTHEAD DC V (IEAHEAD)ADDRESS OF THE FIRST (HIGHEST PRIORITY)
* TCB IN THE READY QUEUE.
CVTMZOO DC F'O' MACHINE SIZE (HIGHEST STORAGE ADDRESS FOR
* THIS MACHINE).
AIF ('&SYS' EQ 'MIN').SKPEND
*** THE FOLLOWING ENTRIES ARE FOR INTERMEDIATE SYSTEMS ***
DC A(O) UNUSED, FORMERLY CIRBLINKAGE
CVTQOCR DC V (IEAQOCR) ENTRY POINT TO OPERATOR COMMUNICATIONS
* QUEUE PURGING ROUTINE.
CVTQMWR DC V (IEFQMWR) SYSOUT-CDA AREA ADDR USED BY THE NON-
* RESIDENT QUEUE MGR
AIF ('&SYS' EQ 'INT').SKPEND
*** THE FOLLOWING ENTRIES ARE FOR VMS SYSTEMS ***
CVTPKTBL DC V(IEAPKTBL) PROTECT KEY TABLE ADDk
CVTQCDSR DC V (IEAQCDSR) ADDR OF CONTENTS DIRECTORY SEARCH ROUTINE
CVTQLPAQ DC V (IEAQLPAQ) ADDR. OF THE TOP C.D. ENTRY IN LPA QUEUE.
CVTQERA DC V (IEAQERA) ENTRY POINT TO EaT ERASE PHASE.
CVTQPGTM DC V (IEAQPGTM) ENTRY POINT ~O EOT PURGE TIlYjER ELMNTS. R'rN
CVTQPIE DC V(IEAQPIE) ENTRY PT TO EOT PIERMVE RT.
CVTQABL DC V(IEAQABL) ENTRY PT TO rOT CDABDEL RT.
CVTQSPET DC V (IEAQSPET) ENTRY PT TO EOT SPEOT RT.
CVTQABST SVC 13 SVC TO ABEND
DC H'O' FIll CUT TO FULL WORD
.SKPEND ANOP
MEND
PREREQUISITE PUBLICATION
The IBM System/360: Principles of Opera-
tion publication (Form A22-6821) ccntains
inforrration about the SIO instruction and
the I/O and SVC interruptions.
108
HOW TO USE THE TRACING ROUTINE
SIO Instruction
o 23 13 21 31 0 31 0 3110 31
J
Device Channel Channel Status Word
0
Address Address Word (Meanin9ful onlylwhen bits 2-3 = 01)
"-. S
10 Condition Code
I/O Interruption
1 0000 Channel
.I
Status Word
I
~--------------v---------------~
SVC Interruption
Contents of Contents of
1 0001
Register 0 Register 1
\~--------------~y---------------~
SVC Old PSW
Location of the Table
The addresses of the last entry made in the table, the beginning of
the table, and the end of the table are contained in a 12-byte field.
The address of this field is contained in the full word starting at
location 20. The format of the field is as follows:
110
IMPLEMENTING DATA SET PROTECTION
Recommended Publications
The IBM System/360 Operating System:
Data Management publication (Form C28-6537)
contains a general description of the data
set protection feature.
The IBM System/360 Operating System:
Operator's Guide publication (Form
C28-6540) contains a description of the
operator messages and replies associated
with the data set protection feature.
The IBM System/360 Operating System: Job
Control Language publication (Form
C28-6539) contains a description of the
data definition (DD) statement parameter
used to indicate that a data set is to be
placed under protection.
Documentation of the operating systerr
routines supporting data set protection can
be obtained through your IBM Branch Office.
You must write routines to create and maintain the PASSWORD data set.
These routines may be placed in your own litrary or the system's linkage
editor library (SYS1.LINKLIB). You may use a data management access
method or EXCP programming to handle the PASSWORD data set.
The balance of this chapter discusses the PASSWORD data set charac-
-teristics and record format, the creation of protected data sets, and
operating characteristics of the data set protection feature.
The PASSWORD data set ITust reside en the same voluwe as your
operating system. The space you allocate to the PASSWORD data set must
be contiguous, i.e., its DSCB must indicate only one extent. The amount
of space you allocate is dependent on the number of data sets your
installation desires to place under protection. The organization of the
PASSWORD data set is physical sequential, and the content is unblocked
format-F records, 132 bytes in length (key area plus data area). The
following illustration shows the password records as you would build
them in a 132 byte work area. Explanation of the fields follows the
illustration.
~
/3 bytes
44 bytes .. ~
-
.... 8 .- 77 bytes
bytes
fully qualified pass- logging field
data set name word (optional informa-
tion)
j~ ~ protect10n
•
mode indi-
cator - ] byte
'----- b1nary counter -2 b yte s
The name of the protected data set being opened and the password
entered by the operator are watched against the 52-byte "key area." The
112
data set name and the password must be left-justified in their areas and
any unused bytes filled with blanks (X'40'). The password assigned may
be from one to eight alphameric characters.
The operating system increments the binary counter by one each time
the data set is successfully opened (except for performance of SCRATCH
or RENAME functions on the data set). When you originate the password
record, the value in the counter may be set at zero (X'OOOO') or any
starting value your installation desires.
The protection mode indicator is set to indicate that the data set is
to be read-only, or that it may be read or written. You set the
indicator as follows:
• To zero (X'OO') if the data set is to be read-only •
• To one (X'Ol') if the data set may be read or written.
You may use the 77-byte logging field to record any information about
the data set under protection that your installation may desire, e.g.,
date of counter reset, previous password used with this data set, etc.
For existing data sets, an equal comparison between the data set
name in a DSCB on the volume switched to, and the name of the data
set opened with the password allows processing to continue. For new
output data sets, the mechanism used to effect volume switching
ensures continuity of protection and the DSCB created on the new
volume will indicate protection.
Data Set Concatention
114
THE RESIDENT BLDL TABLE AND RESIDENT ACCESS METHOD OPTIONS
Prerequisite Publications
The IBM System/360 Operating Systero:
Data Management publication (Form C28-6537)
contains a general discussion of the BLDL
routine.
The IBM Svstem/360 Operating System:
System Generation publication (Forn
C28-6554) describes how you specify the
resident BLDL table and resident access
method option in the SUPRVSOR macro-
instruction at system generation time.
The IBM Systern/360: Operating System:
utilities publication (Form C28-6586)
contains a description of the IEBUPDAT
utility which you use to construct lists of
load module names in the procedure liqrary
(SYS1.PROCLIB).
The IBM System/360 Operating System:
storage Estimates publication (Forro
C28-6551) provides storage requirement
information for the resident access method
option and resident BLDL table option.
The Resident BLDL Table and Resident Access Method Options 115
THE RESIDENT BLDL TABLE AND RESIDENT ACCESS METHOD OPTIONS
Placement occurs during the initial program load (IPL) process. You
include either or both of these options when the system is generated.
Parameters for specification of these options are provided in the system
generation SUPRVSOR macro-instruction. Operator communication with
these options may also be specified.
You specify the linkage library directory entries and the access
method routines to be made resident through lists of linkage library or
access method load module names placed in the procedure library
(SYS1.PROCLIB). A standard list and alternative lists may exist for
each option. IBM provides a standard list for the resident access
method option. The stanaard lists are processed without operator
intervention when the operator communication facility is not included
with the options. When the operator communication facility is included,
the operator must indicate the action to be taken. Selection of
alternative lists may not be made unless the operator corrmunication
facility is included. The Operator's Guide publication describes the
messages and replies associated with the two options.
116
version of the load module is used until an IPL operation takes place
and the new directory entry for the module is made resident.
Any load module in the linkage library may have its directory entry
placed in the resident BLDL table. Other items you should consider are:
Table Size
The resident BLDL table is incorporated in the system nucleus. The
additional storage required is governed by the number of table entries
and is acquired by reducing the amount of dynamic storage area
available, i.e., the system nucleus expands. Each installation using
the resident BLDL table option must determine the amount of storage it
can afford for the resident BLDL table.
Frequency of Use
Short of placing the entire linkage library directory in the resident
BLDL table, you make the option effective by selecting directory entries
representing the load modules which are called most frequently. Your
choice will depend on th~ system configuration and the operating
practices of your installation. You should give loaa modules of the
scheduling components of the system, linkage editor, and language
processor(s) thorough consiueration.
This option places access rrethod load modules in the system nucleus
and creates a resident list cf the loaded modules. A LOAD macro-
instruction requesting any access method mCQule first scans the resident
list. If the module is listed, no fetch operation is required.
You list, in a member of SYS1.PROCLIB, the load module names of
access method load modules to be made resident. ThE:; member name for tne
standard list is IEAIGGOO. A standard list of rrost frequently used
access method roodules is supplied by IBM, and is in SYS1.PROCLIB of the
~tarter system under the standard member name.
The creation of procedure library lists and the content of the IBM
supplied standard list is discussed later in this chapter. The next
section discusses some considerations pertaining to the use of the
aCCESS method option.
All access method modules placed in the system nucleus are "only
loadable". ATTACH, LINK, and XCTL macro-instructions cannot refer to
the resident modules.
The Resident BLDL Table and Resident Access Method Options 117
You may alter the standard access reethod list (or create alternative
lists) to include access method modules supporting program controlled
interrupt scheduling (PCI), exchange buffering, track overflow, and the
UPDAT function of the OPEN macro-instruction.
To te· el igible for use with the resident access method option, access
method load modules must be reenteratle. The IToodule name must be of the
form IGG019xx, where xx can be any two alphanurreric characters.
These are the member names that the nucleus initialization program
will recognize at IPL time in the atsence of any other specification,
i.e., the operator communication facility was not incorporated.
Your input format (to IEBUPDAT) for the lists is the same for either
option, consisting of library identification followed by the load module
names. You use eighty character records with the initial or only record
containing the library identification.. Continuation is indicated ty
placing a comma after the last name in a recora and a non-blank
character in column 72. Subsequent records must start in column 16.
The initial record forrrat (with continuation) is:
1 72
SYS1.LINKLIB
[b ••• ] SYS1.SVCLIB b ... namel,name2,name3, .•. X
You may construct alternative lists for either option and place them
in the procedure library. Member names for these alternate lists are of
the form:
EXAMPLE
The following coding illustrates the format and content of a BLDL
option list that might be used to support the resident BLDL table
option. The operator, at IPL time, would have to indicate the member
118
name, IEABLDAE, to the system. The load module names listed are from
the Assembler (E), Linkage Editor, and scheduler components of the
operating system.
Note: The operator reply "L" may be used in conjunction with a list
specification and causes the content of the list to be printed. You
should use this feature initially (especially with extensive lists> so
that format errors, e.g., a 9 character name, and incorrect name
specifications way be easily identified.
The Resident BLDL Table and Resident Access Method Options 119
APPENDIX' A: RESIDENT ACCESS METHOD OPTION - STANDARD LIST IEAIGGOO
The content of the IBM supplied standard list for the resident access
method option is shown below. The modules are listed in an ascending
sequence by frequency of use, i.e., the least frequently used module is
first in the list. This arrangement ensures efficient scanning of the
resident list developed in storage.
SB=simple buffering
SAM=common sequential aCCESS method routines
120
CONSTRUCTING A DUMMY WAITR ROUTINE
Recommended Publications
The IBM System/360 Oper~ting System:
Control Program Services publication (Form
C28-6541) describes the. WAITR rracro-
instruction.
The IBM System/360 Operating System:
Assembler Lanquage publication (Form
C28-6514) describes the assembler language
used to code the duwmy WAITR routine.
A CODING EXAMPLE
The following source statement sequence illustrates the implementa-
tion of the dummy WAITR routine functions described in the preceding
section. The statements are keyed to explanatory text by the circled
numbers.
DUMWAIT CSECT
SAVE (14,12)
BALR 2,0
USING *,2
ST 13,MYSAVE+4
LA 13, MYSAVE
L 3,0(1) ADDRESS OF PARM AREA TO GR3
LH 5,0(3) PARM AREA COUNT FIELD TO GR5
122
WAI'l'R 1,ECB=XECB RELEASE SCHEDULER
LA 3,0(3)
LR 6,3
SCAN CLI 2(6),C',' SCAN FOR COMMA IN PARM FIELD
BE HIT BRANCH IF FOUND
LA 6,1(6) POIN'! TO NEXT CHARACTER
BCT 5,SCAN
LA 5,1(5)
HIT SR 6,3 GR6 NOW CONTAINS NO. OF BYTES SCANNED
BCTH 5,0 SUBTRACT 1 FROM COUNT FOR COMMA
LA 7,3(3,6) GR7 NOW POINTS AT REMAINING PARAMETERS
BCTH 6,0 SETUP GR6 FOR USE IN EX INST.
EX 6, MODIv'JOVE
STH 5,0(3) REMAINING COUNT TO PARM COUNT FIELD
LTR 5,5 CHECK COUNT FOR ZERO
BZ XOUT IF ZERO, SKIP PARMOVE
BCTR 5,0 SETUP GR5 FOR USE IN EX INST.
3 EX 5,PARMOVE
XOUT L 13,MYSAVE+4
L 14,12(13)
L 1,24(13)
XCTI, (2,12),EPLOC=MODNAME
PARMOVE MVC 2(1,3),0(7)
MODMOVE MVC MODNAME(1),2(3)
MYSAVE DS 18F
DS OD
4 MODNAME DC CL8' •
5 XBCB DC X'40000000'
END
1 The dummy WAITR macro-instruction must be coded as shown here. The
event control block must be specified as shown in statement 5, i.e.,
the complete bit is ON.
2 The subject instruction of this EX instruction places the name of the
program to be invoked in the MODNAME field -- statement 4.
3 The subject instruction of this EX instruction effectively deletes
the invoked program name from the PARM= area by moving the remaining
parameters in the area to the high order end of the area.
4 This field must contain blanks.
5 Coding the event control block as shown here sets the "complete bit"
ON. The wait routine will then allow execution of the WAITR routine
and the invoked program.
To the basic implementation shown in this example, you may wish to
add diagnostic code to inforrr the operator that the PARM= field has been
omitted from the EXEC statement. A count value of zero in the PARM=
area count field indicates that no information has been placed in the
PARM= area.
PROGRAMMING CONSIDERATIONS
A dummy WAITR routine itself does not require any special considera-
tions for use with MFT. MFT conventions that apply to the invoked
programs must be observed.
Note: Use of the dummy WAITR routine precludes the entering of input
data via the jot stream.
124
SYSTEM MACRO-INSTRUCTIONS
Prerequisite Putlications
The IBM Sys1:em/360 Oper~ting System:
Control Program Services publication (Form
C28-6541) contains the notativn conventions
used to describe the macro-instructions in
this chapter.
The IBM Sys1:em/360 Operating System:
Assembler Language publication (Form
C28-6514) contains the information neces-
sary to code programs in the assemtler
language.
The IBM system/360 Operating System:
System Control Block publication (Forro
C28-6628) contains format and field de-
scriptions of the system control tlccks
referred to in this chapter.
r----------T----------T------------------------------------------------,
I Nawe I Operation I Operand I
~----------+----------+------------------------------------------------~
lI __________
[symbol] LI __________
DEVTYPE iI _______________________________
ddloc-addrx,area-addrx[,DEVTAB]_________________ JI
ddloc-addrx
specifies the address of a double word that contains the symbolic
name of the DD statement to which the device is assigned. The name
must be left justified in the double word, and must be followed by
blanks if the name is less than eight characters. The double word
need not be on a double-wcrd boundary.
area-addrx
specifies the address of an area into which the device information
is to be placed. The area can be either two full words or five
full wordS, depending on whether or not the DEVTAB operand is
specified. The area must bt on a full word toundary.
DEVTAB
If DEVTAB is specified, and the device is a direct-access device,
five full words of information are placed into your area. If
DEVTAB is specified, and the device is not a direct-access device,
two full words of information are placed into your area. If DEVTAB
is not specified, two full words of information are placed into
your area.
Note: Any reference to a durrmy DD statement in the DEVTYPE
macro-instruction will cause invalid information to be placed in
the output area.
Note: Bit settings for Byte 2 -- Optional Features are noted in the ueB
format and field description in the System Control Blocks publication.
Word 2 Maximum tlock size. For direct-access devices, this
value is the maximum size of an un keyed block; for
magnetic or paper tape, this value is the maximum
block size allowed by the operating system. For all
other devices, this value is the maximum block size
accepted by the device.
126
If DEVTAB is specified, the next three full words contain the
following information:
Maximum
UCB Type Field Record Size DEVTAB
(Word 1 (Word 2 (Words 3, 4, and 5
In Hexadecimal) In Decin1al} In Hexadecimal}
128
2301 30 40 20 02 20483 000100C85003BA3535000200
*Although certain models can have a larger line size, the minimum line
size is assumed.
Exceptional Returns
The JFCB is returned to the job queue by the OPEN routine or the
OPENJ routine, if any of the modifications in the following list occur.
These modifications can occur only if the inforroation is not originally
in the JFCB.
• Expiration date field and creation date field merged into the JFCB
from the DSCB.
• Secondary quantity field merged into the JFCB from the DSCB.
r----------T----------T------------------------------------------------,
I Name I Operation I Operand I
~----------+----------+------------------------------------------------~
I [symJ:::ol] I OPEN I ({ dcb-addr, [ (optl. -code [ , opt 2 -code] ) 1 , } ••. ) I
IL __________ LI __________ LI ________________________________________________
[,TYPE=J] JI
130
TYPE=J
specifies that, for each data control block referred to, the
programmer has supplied a job file control block (JFCB) to be used
during initialization. A JFCB is an internal representation of
information in a DD control statement.
The system always creates a job file control block for each DD
control statement. The job file control block is placed in a job
queue on direct-access storage. Its position, in relation to other
JFCBs created for the same job step, is noted in a main storage
table. '
• Device allocation.
r----------T----------T------------------------------------------------,
I Nawe I Operation I Operand I
~----------+-~--------+------------------------------------------------i
IL__________
[syml:olJ I __________
~ RDJFCB ~I ________________________________________________
({dcb-addr, [(opt :l-code[,opt 2 -code])],} •.• ) JI
Although the opt:l and opt2 operands are not meaningful during the
execution of the RDJFCB macro-instruction, these oper~nds can
appear in the L-form of either the RDJFCB or OPEN macro-instruction
to generate identical parameter lists, which can be referred to
with the E-forw of either macro-instruction.
r--------------T------------------T------------------------------------,
I Type of Exit I Hexadecimal Code I Contents of Exit List Entry I
I List Entry I (high-order byte) I (three low-order bytes) I
~--------------+------------------+--------------~---------------------i
I Job file I 07 I Address of a 176-tyte area to be I
I control block I I provided if the RDJFCB or OPEN I
I I I (TYPE=J) macro-instruction is used. I
I I I This area must begin on a full word I
IL ______________ LI __________________ I ____________________________________
~
boundary. JI
The main storage area into which the JFCB is read must be at least
176 bytes long.
The data control block may be open or closed when this macro-
instruction is executed.
Error Result
132
Access method option Device code designations
alternative list 118 catalog and VTOC maintenance 29
eligible routines 118,120 DEVTYPE macro-instruction 127
function 117 DEVTYPE macro-instruction
operator communication 116,,118 DEVTAB operand 126,127
procedure library list 118,119 format 126
standard list 120 purpose 126
storage requirements 117 Dummy WAITR routine
Accounting routines example 122,123
entry to 40 EXEC statement PARM field 122,124
exit from 41 functions 122
input to 40 input data via job stream 124
insertion in control program 41
output from 41 Editor routines
dual-density contiict 55
BLDL table option entry conditions 56,57
alternative list 118 general logic flow 58
eligible entries 117 insertion in control program 63,64
entry size 117 module names 55
function 116 programming conventions 55
operator communication 116., 118 volume label conflict 55
procedure library list 118,119 EXCP macro-instruction
standard list name 116 channel program 76
storage requirements 117 channel program completion 79
channel program dev~ge end errors 79
Catalog maintenance channel program initiation 78
alias entry 27 CLOSE with EXCP 84,,92
CAMLIST macro-instruction control blocks 77
11,12~13,14,15,16,17~18 data control block format 86
CATALOG macro-instruction 17,18 DCB with EXCP 77,84
control volume pointer entry 27 DEB with EXCP 77,96
data set cataloging 17 ECB with EXCP 77,95
data set deletion (direct-access EOV with EXCP 84,91
volumes) 19 lOB use with EXCP 77,93
data set pointer entry 26 OPEN with EXCP 84,90
data set renaming 20 programmer use 77
generation index build 13 system use 75
generation index pointer entry 27
index alias assignment 14
index alias deletion 15 IECDSECT macro-instruction
index build 13 format 65
index control entry 25 macro-definition 65
index deletion 14 purpose 65
index link entry 2_6 use in editor routines 61
INDEX macro-instruction 13,14,15,16 use in nonstandard label routines 52
index pointer entry 26 IEFJFCBN macro-instruction
LOCATE macro-instruction 11,12 format 71
volume control block contents 28 macro-definition 73
volume control block pointer entry 26 purpose 71
volume index control entry 25 use in editor routines 61,63
Catalog and VTOC maintenance IEFUCBOB macro-instruction
device code designations 29 format 70
Control volumes macro-definition 70
connection 15 purpose 70
disconnection 16 use in editor routines 61,,63
~se in nonstandard label routines 52
Data set protection
concatenation 114 JFCB modification 130
counter maintenance 114
operating characteristics 113 Nonstandard label routines
SCRATCH and RENAME functions 114 control information 47
termination of processing 113 design 45
volume switching 114 entry point 45
Index 133
C28-6550-2
(')
I\J
00
I
0'1
lJ1
lJ1
o
I
I\J
fold
fold fold
r--------------------,
I FIRST CLASS I
I PERMIT NO. 81 I
I I
IL____________________
POUGHKEEPSIE, N.Y. JI
r------------------------------------------------,
I BUSINESS REPLY MAIL I
IL_______________________________
NO POSTAGE STAMP NECESSARY IF .MAILED IN U.S.A. JI
_________________
111111
111111
POSTAGE WILL BE PAID BY
111111
IBM CORPORATION
P.O. BOX 390 111111
POUGHKEEPSIE, N. Y. 12602
"'d
I1III1 Ii
1-'-
::s
ATTN: PROGRAMMING SYSTEMS PUBLICATIONS 111111 it
CD
DEPT. D58 0..
111111 1-"
::s
c::
told · fold
··
Cfl
:J:lI
()
N
ex>
I
'"
U'I
U'I
0
I
N