IBM System/360 User guide

Systems Reference Library
IBM
System/360
Operating System
System Programmer's
Guide
This
publication
describes:
File
No.
S360-20
Form
C28-
6550-
2
OS
•
How
to
maintain
the
data
set
cataloging
facility
of
the
Operating
System
and
the
volume-table-of-
contents
(VTOC)
of
a
direct-access
volume.
•
How
to
modify
or
extend
capabilities
of
the
Operat-
ing
System
in
the
areas
of
job
and
job-step
accounting~
processing
of
magnetic
tape
labels,
and
SVC
routines.
•
How
to
implement
the
data
set
protection
feature
of
the
Operating
System.
•
How
to
write
a
shift
initiator
program
for
use
when
the
multiprogramming
with
a
fixed
number
of
tasks
(MFT)
option
is
incorporated
in
the
Operating
System.
•
How
to
use
the
EXCP
(Execute
a
Channel
Program)
and
XDAP
(Execute
a
Direct-Access
Program)
macro-
instructions,
the
Resident
Access-Method
and
BLDL
Table
options,
and
the
tracing
routine.
Also
included
are
descriptions
of
system
macro-
instructions
used
in
modifying
the
control
program.

PREFACE
This
publication
consists
of
self-
contained
chapters,
each
of
which
provides
information
on
how
to
modify
or
extend
the
capabilities
of
the
IBM
System/360
Operating
System
control
program.
Although
the
information
in
one
chapter
is
sometimes
related
to
information
in
another,
all
chapters
have
been
written
as
separate
and
complete
units.
Each
chapter
contains
its
own
introductory
section
and
list
of
pre-
requisite
publications.
This
organization
has
been
used
to
reduce
cross-referencing
and
to
facilitate
the
addition
of
new
chapters.
Third
Edition
(March
1967)
This
publication
is
a
revision
of
Forms
C28-6550-0
and
C28-6550-1
and
obsoletes
the
previous
editions.
This
publication
retains
the
content
of
the
previous
editions,
as
amended
by
Technical
Newsletters
N28-2145,
N28-2157,
N28-2162, N28-2183,
N28-2188,
and
N28-2207,
with
the
following
exceptions:
The
format
and
field
description
of
the
Data
Set
Control
Blocks,
the
Data
Extent
Block,
and
the
Job
File
Control
Block
are
dele-ted.
The
chapter
Cataloged
Procedures
is
deleted.
Additions
and
changes
to
existing
material
that
are
effective
as
of
this
edition,
are
indicated
by
a
vertical
bar
in
the
left
margin.
Specifications
contained
time.
Any
such
change
will
Technical
Newsletters.
herein
are
subject
to
change
from
time
to
be
reported
in
subsequent
revisions
or
This
publication
was
prepared
for
production
using
an
IBM
computer
to
update
the
text
and
to
control
the
page
and
line
format.
Page
impressions
for
photo-offset
printing
were
obtained
from
an
IBM
1403
Printer
using
a
special
print
chain.
copies
of
this
and
other
IBM
publications
can
be
obtained
through
IBM
Branch
Offices.
A
form
for
readers'
conunents
appears
at
the
back
of
this
publication.
It
may
be
mailed
directly
to
IBM.
Address
any
additional
conunents
concerning
this
publication
to
the
IBM
Corporation,
Progranuning
Systems
Publications,
Department
D58,
PO
Box
390,
Poughkeepsie,
N.
Y.
12602
~
International
Business
Machines
corporation
1966,
1967

CONTENTS
MAINTAINING
THE
CATALOG
AND
THE
VOLUME
TABLE
OF
CONTENTS. 9
Maintaining
the
Catalog
and
the
Volume
Table
of
contents.
How
to
Read
a
Block
From
the
Catalog
• • • • • •
Specifying
the
Name
of
an
Index
Level
or
Data
Set
•
Specifying
the
Name
of
a
Generation
Data
Set
••
Specifying
a Name
Using
an
Alias.
•
Specifying
by
TTR • • • • • •
How
to
Build
an
Index.
• • • • •
How
to
Build
a
Generation
Index.
How
to
Delete
an
Index
• •
How
to
Assign
an
Alias
• • • • •
How
to
Delete
an
Alias
• • • • .
How
to
Connect
Control
Volumes
•
How
to
Disconnect
Control
Volumes.
How
to
Catalog
a
Data
Set.
• • • • •
How
to
Remove
Data
Set
References
From
the
Catalog
•
How
to
Recatalog
a
Data
Set
••
• •
10
•
10
• .
••
10
• • •
11
· • .
12
• • •
12
•
13
•
13
• .
14
• .
14
• .
15
• • • • • .
15
•
16
•
17
• • •
17
·
18
How
to
Read
a
Data
Set
Control
Block
From
the
Volume
Table
of
Contents.
• • • • •
How
to
Delete
a
Data
Set
How
to
Rename
a
Data
Set
Appendix
A:
Catalog
Block
Entries.
Control
Entries
• • • • • • •
Pointer
Entries
• • • • • • •
The
Volume
Control
Block
Contents
• • •
Appendix
B:
Device
Code
Designations
~
ADDING
SVC
ROUTINES
TO
THE
CONTROL
PROGRAM.
Writing
SVC
Routines.
• • • . • • • • .
Characteristics
of
SVC
Routines
• • • • . •
Programming
conventions
for
SVc'Routines.
• • •
18
·
19
• • • • • •
20
• • • • • • • • • •
25
•
25
• • • • • • •
26
• • • •
28
•
29
• • •
31
• •
32
32
• •
32
Inserting
SVC
Routines
Into
the
Control
Progra_
• . • • • • •
37
Specifying
SVC
Routines
•••
• • • • . • • • . .
37
Inserting
SVC
Routines
During
the
System
Generation
Process
• •
37
ADDING
AN
ACCOUNTING ROUTINE
TO
THE
CONTROL
PROGRAM.
•
••
39
Writing
an
Accounting
Routine
• •
40
Inserting
an
Accounting
Routine
Into
the
Control
Program.
• • .
41
Inserting
an
Accounting
Routine
Before
System
Generation..
41
Inserting
an
Accounting
Routine
After
System
Generation
• • • •
41
NONSTANDARD
LABEL PROCESSING ROUTINES;
VOLUME
DUAL-DENSITY TAPE DEVICE EDITOR ROUTINES
•.
LABEL
AND
Section
1:
Writing
Nonstandard
Label
Input
Header
Label
Routines
•
Input
Trailer
Label
Routine
•
Output
Header
Label
Routines.
Output
Trailer
Label
Routines
programming
Conventions
• • •
Program
Functions
. • • • • •
Explanations
of
Logic
Blocks.
Processing
Routines
• •
Inserting
Nonstandard
Label
Routines
Into
the
Control
Program
•
•
43
•
44
44
• •
44
44
• •
45
45
46
•
52
•
53

Section
2:
Volume
Label
and
Dual-Density
Tape
Device
Editor
Routines
• • •
55
Programming
Conventions
• • • •
55
Entry
Conditions
and
General
Logic
Flow
of
the
Editor
Routines.
• • •
56
Entry
Conditions
• • • • • • • • • • • • . • •
56
General
Logic
Flow
• • • • • • • •
58
Logic
Block
Explanations.
• • • •
61
Inserting
Your
Label
Editor
Routines
Into
the
Control
Program
• . • .
63
Appendix:
IECDSECT,IEFJFCBN,
and
IEFUCBOB
Macro-Instructions
• · • •
65
IECDSECT
Macro-Instruction
• • • • • • • . • • • •
Control
Statements
Required
• • • • •
IECDSECT
Macro-Definition
• • • • • .
IEFUCBOB
Macro-Instruction
• . • • • • •
Control
Statements
Required
• • . • .
IEFUCBOB
Macro-Definition
• •
••
• . • • . • •
IEFJFCBN
Macro-Instruction
. . • . . • •
Control
statements
Required
• . • • • • •
IEFJFCBN
Macro-Definition
• . • • • •
EXECUTE
CHANNEL
PROGRAM
(EXCP) MACRO-INSTRUCTION.
Execute
Channel
Program
(EXCP)
Macro-Instruction.
Use
of
EXCP
in
System
and
Problem
Programs.
•
System
Use
of
EXCP • • •
Programmer
Use
of
EXCP
EXCP
Requirements
• • • • • •
Channel
Program.
• • • • . • • •
Data
and
Command
Chaining
Control
Blocks
• . • • • • •
Input/Output
Block
(lOB).
Event
Control
Block
(ECB)
Data
Control
Block
(DCB)
••.
Data
Extent
Block
(DEB)
· • .
65
·
65
· . • • • .
65
•
70
• • •
70
• •
70
· • •
71
•
72
• • • • • •
72
• •
74
•
75
• • •
75
75
• • • • • •
76
•
76
76
• •
76
• • •
77
•
77
• •
77
· 77
•
77
Channel
Program
Execution
• . • • • • • •
78
Initiation
of
Channel
Program.
•
Completion
of
Channel
Program.
• • • • • • •
78
• • • • • • •
79
• • • • • •
79
Device
End
Errors
. • • • . •
Interruption
Handling
and
Error
Recovery
Error
Recovery
Procedures
for
Related
Procedures.
•
Channel
Programs.
• • • •
79
• •
79
Appendages.
• • •
•••••
Defining
Appendages.
• •
Entering
Appendages
Into
SVC
Library
•
Characteristics
of
Appendages
••.•
Start
Input/Output
(SIO)
Appendage.
Program
Controlled
Interruption
(PCI)
End-of-Extent
Appendage
Channel
End
Appendage
• •
Abnormal
End
Appendage.
•
EXCP
Programming
Specifications
Macro-Instructions
• • • . •
Appendage
DCB
--
Define
Data
Control
Block
for
EXCP
.
OPEN
--
Initialize
Data
Control
Block
.
EXCP
--
Execute
Channel
Program
. •
EOV
--
End
of
Volume.
• • • •
~.
• • • . • • • • • •
CLOSE
--
Restore
Data
Control
Block
• .
Control
Block
Fields
. • • • . •
Input/Output
Block
Fields
. •
Event
Control
Block
Fields
••
• • •
80
• •
80
• • • •
80
·
81
• • • •
82
• • • • • •
82
•
82
·
83
•
83
• •
84
•
84
• • •
84
• • • • • •
90
• • .
91
• • • •
91
• • •
92
•
93
•
93
• •
95

Data
Extent
Block
Flelds
•.•.•
Appendix:
Restore
Macro-Instruction
.•.
RESTORE
Macro-Instruction
• •
Control
Statements
Required
•
RESTORE
Macro-Definition
•••
.
'.
. . · .
96
•
97
97
97
•
97
EXECUTE
DIRECT ACCESS
PROGRAM
(XDAP) MACRO-INSTRUCTION. . • • .
98
Execute
Direct
Access
Program
(XDAP)
Macro-Instruction.
. • •
99
Requirements
for
Execution
of
Direct-Access
Program
• •
99
XDAP
Programming
Specifications
. • . • . . • •
.100
•
.100
Macro-Instructions
• • • . • . . . • • . •
DCB
--
Define
Data
Control
Block.
. . •
OPEN
--
Initialize
Data
Control
Block
.
XDAP
--
Execute
Direct-Access
Program
•
EOV
--
End
of
Volume.
. • • •
d • • • •
.100
..
• • • • . • • •
.100
. • • • . •
.100
.101
CLOSE
--
Restore
Data
Control
Block
•
.101
The
XDAP
Control
Block
• • •
Event
Control
Block
(ECB) • •
Input/Output
Block
(lOB)
•••
Direct-Access
Channel
Program
. • • • • . • . •
.102
XDAP
Options
•••.••••••••
·
•.
102
•
•.
103
.103
.103
Conversion
of
Relative
Track
Address
to
Actual
Address
. ·
.103
Appendages
• • • • • • • • • • . • • • • • .
L-
and
E-
Forms
of
XDAP
Macro-Instruction.
Appendix:
CVT
Macro-Instruction.
. • • .
HOW
Format
of
the
CVT
Macro-Instruction
Control
Statements
Required
•
CVT
Macro-Definition.
• • • •
TO
USE
THE
TRACING ROUTINE
HOW
TO
USE
THE
TRACING ROUTINE
Table
Entry
Formats
• _
Location
of
the
Table
• • . •
IMPLEMENTING
DATA
SET PROTECTION
Implementing
Data
Set
Protection
.•
Password
Data
Set
Characteristics
and
Record
Format
•
Protecting
the
Password
Data
Set
••
Creating
Protected
Data
Sets
.•••
Protection
Feature
Operating
Characteristics.
Termination
of
Processing
. • . • • • •
Volume
Switching.
. • •
•••
Data
Set
Concatention
• • • •
SCRATCH
and
RENAME
Functions.
Counter
Maintenance
• • • • .
•
•.
104
.104
•
.105
.105
•
••.
105
•
•.
105
•
.108
•
•.
109
·
•.
109
·
•.
109
•
.111
•
•••
112
•
.112
•
.113
.113
·
.•.
113
·
.•.
113
· • • . .
.114
·
•.
114
.114
· . • • .
.114
THE
RESIDENT
BLDL
TABLE
AND
RESIDENT ACCESS
'METHOD
OPTIONS
•.
115
The
Resident
BLDL
Table
and
Resident
Access
Method
Options
•.
·
.116
The
Resident
BLDL
Table
Option.
• . •
Selecting
Entries
for
the
Resident
BLDL
Table.
. . • •
Table
Size.
• • . • • • • •
Frequency
of
Use.
• • • . . •
The
Resident
Access
Method
Option
•
•
•.
116
.117
· . • . •
.117
•
••••.
117
.117

Considerations
for
Use
• • • • •
Creating
Procedure
Library
Lists
••
Example.
• • • • • • • • • • • •
•
.117
.118
.118
Appendix
A:
Resident
Access
Method
Option
-
Standard
List
IEAIGGOO
.120
CONSTRUCTING A
DUMMY
WAITR
ROUTINE.
Constructing
a
Dummy
WAITR
Routine.
•
Functions
of
the
Dummy
WAITR
Routine.
•
A
Coding
Example
• • • • • •
Job
Control
Language
Statements
Programming
Considerations.
SYSTEM
MACRO-INSTRUCTIONS
••
Locate
Device
Characteristics
(DEVTYPE)
Macro-Instruction
Device
Characteristics
Information.
• • • • • •
Output
for
Each
Device
Type
• • • • • • • •
Exceptional
Returns
• • • • • • • •
.121
•
.122
.122
••••
122
••••
123
•
.124
.125
•
.126
•
.126
• •
.128
.129
How
to
Read
a
Job
File
Control
Block.
• • • • • • •
.130
OPEN
--
Prepare
the
Data
Control
Block
for
Processing
(S>
••.
130
RDJFCB
--
Read
a
Job
File
Control
Block
(S> . • • • • •
.131

ILLUSTRATIONS
FIGURES
Figure
1.
Status
of
Control
Information
and
Pointers
••••••••
47
Figure
2.
Format
of
Combined
Work
and
Control
Block
Area
••••••
48
Figure
3.
General
Flow
of
a
Nonstandard
Label
Processing
Routine
After
Receiving
Control
From
the
OPEN
Routine.
• • • • . • • • • • • 49
Figure
4.
General
Flow
of
a
Nonstandard
Label
Processing
Routine
After
Receiving
Control
FrOID
the
CLOSE
Routine
• • • • • • • • . • .
50
Figure
5 •
GenE~ral
Flow
of
a
Nonstandard
Label
Processing
Routine
After
Receiving
Control
Frorr
the
EOV
Routine
• • • • • • • • • •
51
Figure
6.
Editor
Routine
Entry
Conditions.
. • . .
.•
•
57
Figure
7.
General
Flow
of
an
Editor
Routine
After
Receiving
Control
From
the
OPEN
Routine.
• • • • • • • • • • • • • •
59
Figure
8.
General
Flow
of
an
Editor
Routine
After
Receiving
Control
From
the
End-of-Volume
Routine
• • • . • • •
60
Figure
9.
Data
Control
Block
Format
for
EXCP
(After
OPEN).
••
86
Figure
10.
Input/Output
Block
Format.
• • • • • . • •
..
•
••
93
Figure
11.
Event
Control
Block
After
Posting
of
Completion
Code.
95
Figure
12.
Event
Control
Block
After
Posting
of
Completion
Code
•••
102
Figure
13.
The
XDAP
Channel
Programs.
• • • • • • • • . • •
.103
TABLES
Table
1.
Programming
Conventions
for
SVC
Routines
•••••••.••
33


MAINTAINING
THE
CATALOG
AND
THE
VOLUME
TABLE
OF
CONTENTS
This
chapter
provides
detailed
informa-
tion
on
how
to
maintain
and
modify
the
catalog
and
volume
table
of
contents.
Before
reading
this
chapter,
you
should
be
familiar
with
the
information
contained
in
the
prerequisite
publications
listed
below.
Documentation
of
the
internal
logic
of
the
routines
used
to
maintain
and
modify
the
catalog
and
volume
table
of
contents
can
be
obtained
through
your
IBM
Branch
Office.
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.
Maintaining
the
Catalog
and
the
Volume
Table
of
contents
9

MAINTAINING
THE
CATALOG
AND
THE
VOLUME
TABLE
OF
CONTENTS
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.
The
functions
you
can
perform
using
the
macro-instructions
are
described
in
text,
and
the
formats
of
the
macro-instructions
are
tabulated
on
a
fold-out
sheet
at
the
tack
of
this
chapter.
The
chart
on
the
fold-out
sheet
associates
the
function
described
in
text
with
the
macro-instructions
needed
to
perform
the
function.
You
should
keep
the
fold-out
sheet
open
when
reading
the
text.
The
functions
that
are
described
in
text
are
as
follows:
•
How
to
read
a
block
fron:
the
catalog.
•
How
to
build
an
index.
•
How
to
build
a
generation
index.
•
How
to
delete
an
index.
•
How
to
assign
an
alias.
•
How
to
delete
an
alias.
•
How
to
connect
control
volumes.
•
How
to
disconnect
control
volumes.
•
How
to
catalog
a
data
set.
•
How
to
rerr,ove
data
set
references
from
the
catalog.
•
How
to
recatalog
a
data
set.
•
How
to
read
a
data
set
control
block
from
the
volume
table
of
contents.
•
How
to
delete
a
data
set.
•
How
to
rename
a
data
set.
Accompanying
the
function
descriptions
in
text
are
coding
examples
and
programm1ng
notes;
exceptional-return
condition
codes
for
the
macro-instructions
are
tabulated
on
the
back
of
the
fold-out
sheet.
HOW
TO
READ
A
BLOCK
FROM
THB
CATALOG
To
read
either
an
index
block
or
a
block
indicating
the
volumes
on
Which
a
data
set
is
stored
(volume-list
block),
you
use
the
LOCATE
and
CAMLST
macro-instructions.
There
are
two
ways
to
specify
the
block
that
you
want
read
into
main
storage:
by
using
the
nawe
of
the
index
level
or
data
set,
or
by
using
the
block's
location
relative
to
the
beginning
of
the
catalog
(TTR).
Specifying
the
Name
of
an
Index
Level
or
Data
Set
If
you
specify
an
index
level
name,
the
first
block
of
the
named
index
is
read
int,o
main
storage,
and
an
exceptional
return
code
is
set.
Index
tlock
formats
are
contained
in
Appendix
A
of
this
chapter.
If
you
specify
a
data
set
name,
a
256-byte
volume-list
block
is
read
into
main
storage.
The
block
contains
up
to
20
volume
pointers,
each
of
which
points
to
a
volume
on
which
~art
of
the
data
set
is
stored.
The
first
two
bytes
of
the
block
contain
the
number
of
volume
pointers
for
the
data
set.
Each
volume
pointer
is
a
12-byte
field
that
contains
a
4-byte
device
code,
a
6-byte
volume
serial
number,
and
a
2-byte
data
set
sequence
number.
(Device
codes
are
contained
in
Appendix
B
of
this
chapter.)
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.
Example:
In
the
following
example,
the
list
of
volumes
that
contain
data
set
A.B
is
read
into
main
storage.
The
search
for
the
volume-list
block
starts
on
the
system
residence
volume.
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
DS
I 265C 6-BYTE SERIAL
NUMBER
I
L
_________
~
___________
~
_________________________________________________
J
The
LOCATE
macro-instruction
points
to
the
CAMLST
macro-instruction.
NAME,
the
first
operand
of
CAMLST,
specifies
that
the
system
is
to
search
the
catalog
for
a
volume-list
tlock
by
using
the
name
of
a
data
set.
AB,
the
second
operand,
specifies
the
main
storage
location
of
a
44-byte
area
into
which
you
have
placed
the
fully
qualified
name
of
a
data
set.
LOCAREA,
the
fourth
operand,
specifies
a
265-byte
area
you
have
reserved
in
main
storage.
After
execution
of
these
macro-instructions,
the
265-byte
area
contains:
the
256-byte
volurre-list
block
for
data
set
A.B,
the
3-byte
relative
track
address
(TTR)
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
..
Specifying
the
Name
of
a
Generation
Data
Set
You
specify
the
name
of
a
generation
data
set
by
using
the
fully
qualified
generation
index
name
and
the
relative
generation
number
of
the
data
set.
The
value
of
a
relative
generation
number
reflects
the
position
of
a
data
set
in
a
generation
data
group.
The
following
values
can
be
used:
•
Zero
-
specifies
the
latest
data
set
cataloged
in
a
generation
data
group.
•
Negative
nt~ber
-
specifies
a
data
set
cataloged
before
the
latest
data
set.
•
Positive
number
-
specifies
a
data
set
not
yet
cataloged
in
the
generation
data
group.
When
you
use
zero
or
a
negative
number
as
the
relative
generation
number,
a
volume-list
block
is
read
into
main
storage
and
the
relative
generation
number
is
replaced
by
the
absolute
generation
name.
When
you
USE~
a
positive
number
as
the
relative
generation
number,
an
absolute
generation
name
is
created
and
replaces
the
relative
generation
number.
A
volume-list
block
is
not
read,
since
none
exists
for
these
data
sets.
Example:
In
t.he
following
example,
the
list
of
volumes
that
contain
generation
data
set
A.PAY(-3)
is
read
into
main
storage.
The
search
for
the
volume-list
block
starts
on
the
system
residence
volume.
Maintaining
the
Catalog
and
the
Volume
Table
of
contents
11

r---------T----------T-------------------------------------------------,
I Name I
operationl
Operand
I
~---------+----------+-------------------------------------------------~
I I
LOCATE
I
INDGX
READ
VOLUME-LIST
BLOCK
FOR
I
I I
Check
Exceptional
Returns
DATA
SET
A.PAY(-3)
INTO
I
I
INDGX
I
CAMLST
I NAME,APAY"LOCAREA
MAIN
STORAGE
AREA
NAMED
I
I
APAY
I
DC
I
CL44'A.PAY(-3)'
LOCAREA.
LOCAREA
ALSO
CON-
i
I
LOCAREA
I
DS
I
OD
TAINS 3-BYTE
TTR
AND
I
I I
DS
I 265C 6-BYTE SERIAL
NUMBER
I
L
_________
~--
________
~
_________________________________________________
J
The
LOCATE
macro-instruction
points
to
the
CAMLST
macro-instruction~
NAME,
the
first
operand
of
CAMLST,
specifies
that
the
system
is
to
search
the
catalog
for
a
volume-list
block
by
using
the
name
of
a
data
set.
APAY,
the
second
operand,
specifies
the
main
storage
location
of
a
44-byte
area
into
which
you
have
placed
the
name
of
the
generation
index
and
the
relative
generation
number
of
a
data
set
in
the
generation
data
group.
LOCAREA,
the
fourth
operand,
specifies
a
265-byte
area
you
have
reserved
in
main
storage.
After
execution
of
these
macro-instructions,
the
265-byte
area
contains:
the
256-byte
volurre-list
clock
for
generation
data
set
A.
PAY(-3),
the
3-byte
relative
track
address
('ITR)
of
the
block
following
the
one
read
into
rrain
storage,
and
the
6-byte
serial
number
of
the
volume
on
which
the
block
was
found.
In
addition,
the
system
will
have
replaced
the
relative
generation
number
that.
you
specified
in
your
44-byte
area
with
the
data
sst's
absolute
generation
name.
§pecifying
a Name
Using
an
Alias
For
each
of
the
preceding
functions,
you
can
specify
an
alias
as
the
first
name
in
the
qualified
name
of
an
index
level,
data
set,
or
generation
data
set.
Each
function
is
performed
exactly
as
previously
described,
with
one
exception:
the
alias
narre
specified
is
replaced
by
·the
true
name.
§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
I I
DS
I
265C
TTR
AND
6-BYTE SERIAL
NO.
I
L
_________
~
__________
~
_________________________________________________
J
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.
HOW
TO
BUILD
AN
INDEX
To
tuild
a
new
index
structure
and
add
it
to
the
catalog,
you
must
create
each
level
of
the
index
separately.
You
create
each
level
of
the
index
ty
using
the
INDEX
and.
CAMLST
macro-instructions.
These
two
macro-instructions
can
also
be
used
to
add
index
levels
to
existing
index
structures.
Example:
In
the
following
example,
index
structure
A.B.C
is
built
on
the
control
volume
whose
serial
number
is
000045.
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
CLEVEL
DC
I
CL6'A.B.C'
WHICH
DELIMIT FIELDS
L-
________
~
_____
.
_____
~
_________________________________________________
J
Each
INDEX
macro-instruction
points
to
an
associated
CAMLST
macro-
instruction.
BLDX,
the
first
operand
of
CAMLST,
specifies
that
an
index
level
be
built.
The
second
operand
specifies
the
main
storage
location
of
an
area
into
which
you
have
placed
the
fully
qualified
name
of
an
index
level.
ThE;
third
operand
specifies
the
main
storage
location
of
an
area
into
which
you
have
placed
the
6-byte
serial
nuwoer
of
the
volume
on
which
the
index
level
is
to
be
built.
HOW
TO
BUILD A
GENERATION
INDEX
You
build
a
generation
index
by
using
the
INDEX
and
CAMLST
macro-
instructions.
All
higher
levels
of
the
index
must
exist.
If
the
higher
levels
of
the
index
are
not
in
the
catalog,
you
mus·t
build
them.
How
to
build
an
index
has
been
explained
previously.
In
the
following
example,
the
generation
index
D
is
built
on
the
control
volurr.e
whose
serial
number
is
000045.
The
higher
level
indexes
A.B.C
already
exist.
When
the
number
of
generation
data
sets
in
the
generation
index
D
exceeds
four,
the
oldest
data
set
in
the
group
is
uncataloged
and
scratched.
Maintaining
the
Catalog
and
the
Volurre
Table
of
contents
13

r---------T----------T-------------------------------------------------,
I Name I
operation
I
Operand
I
~---------+----------+-------------------------------------------------~
I I
INDEX
I
GENINDX
BUILD
GENERATION
I
I I
Check
Exceptional
Returns
INDEX
I
I
GENINDX
I
CAMLST
I BLDG,DLEVEL,VOLNUM"DELETE,,4 I
I
DLEVEL
I
DC
I
CLsrA.B.C.D'
BLANK
DELIMITER I
I
VOLNUM
I
DC
I
CL6'000045'
I
L
_________
~
__________
~
_________________________________________________
J
The
INDEX
macro-instruction
points
to
the
CAMLST
macro-instruction.
BLDG,
the
first
operand
of
CAMLST,
specifies
that
a
generation
index
be
built.
DLEVEL,
the
second
operand,
specifies
the
main
storage
location
of
an
area
into
which
you
have
placed
the
fully
qualified
name
of
a
generation
index.
VOLNUM,
the
third
operand,
specifies
the
main
storage
location
of
an
area
into
which
you
have
placed
the
6-byte
serial
number
of
the
volume
on
which
the
generation
index
is
to
be
built.
DELETE,
the
fifth
operand,
specifies
that
all
data
sets
dropped
from
the
generation
data
group
are
to
be
deleted.
The
final
operand,
4,
specifies
the
number
of
data
sets
that
are
to
be
maintained
in
the
generation
data
group.
Note:
A
model
DSCB
for
the
generation
data
set
must
be
placed
on
the
control
volume
containing
the
index
prior
to
creation
of
the
data
set.
The
system
will
take
information
from
the
model
DSCB
when
you
create
a
data
set
for
the
group.
A
model
DSCB
is
created
by
specifying,
in
a
DD
statement:
the
name
of
the
data
set;
zero
space
allocation,
i.e.,
SPACE=(TRK,
(0»;
and
appropriate
DCB=parameters.
HOW
TO
DELETE
AN
INDEX
You
can
delete
any
number
of
index
levels
from
an
existing
index
structure.
Each
level
of
the
index
is
deleted
separately.
You
delete
each
level
of
the
index
by
using
the
INDEX
and
CAMLST
macro-
instructions.
If
an
index
level
either
has
an
alias,
or
has
other
index
levels
or
data
sets
cataloged
under
it,
it
cannot
be
deleted.
Example:
In
the
following
example,
index
level
C
is
deleted
from
index
structure
A.B.C.
The
search
for
the
index
level
starts
on
the
system
residence
volume.
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
LEVELC
I
DC
I
CL6'A.B.C'
ONE
BLANK
FOR
DELIMITER I
L
_________
~
__________
~
_________________________________________________
J
The
INDEX
macro-instruction
points
to
the
CAMLST
macro-instruction.
DLTX,
the
first
operand
of
CAMLST,
specifies
that
an
index
level
be
deleted.
LEVELC,
the
second
operand,
specifies
the
main
storage
location
of
an
area
into
which
you
have
placed
the
fully
qualified
name
of
the
index
structure
whose
lowest
level
is
to
be
deleted.
HOW
TO
ASSIGN
AN
ALIAS
You
assign
an
alias
to
an
index
level
by
using
the
INDEX
and
CAMLST
macro-instructions.
An
alias
can
be
ass~gnea
only
to
a
high
level
index;
e.g.,
index
A
of
index
structure
A.B.C
can
have
an
alias,
but
14

index
B
cannot.
Assigning
an
alias
to
a
high
level
index
effectively
provides
aliases
for
all
data
sets
cataloged
under
that
index.
Example:
of
x.
volume.
In
the
following
example,
index
level
A
is
assigned
an
alias
The
search
for
the
index
level
starts
on
the
system
residence
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
I DSALIAS I
DC
I
CL8'X'
I
L
_________
i
__________
i
_________________________________________________
J
The
INDEX
macro-instruction
points
to
the
CAMLST
macro-instruction.
BLDA,
the
first
operand
of
CAMLST,
specifies
that
an
alias
be
built.
DSNAME,
the
second
operand,
specifies
the
main
storage
location
of
an
8-byte
area
into
which
you
have
placed
the
name
of
the
high
level
index
to
be
assigned
an
alias.
DSALIAS,
the
fourth
operand,
specifies
the
main
storage
location
of
an
8-byte
area
into
which
you
have
placed
the
alias
to
be
assigned.
HOW
TO
DELETE
AN
ALIAS
You
delete
an
alias
previously
assigned
to
a
high
level
index
ty
using
the
INDEX
and
CAMLST
macro-instructions.
Example:
In
the
following
example,
alias
X,
previously
assigned
as
an
alias
for
index
level
A,
is
deleted.
The
search
for
the
alias
starts
on
the
system
residence
volume.
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
I ALIAS I
DC
I
CL8'X'
MUST
BE
8-BYTE FIELD I
L
_________
i
______
.
____
i
________
---
______________________________________
J
The
INDEX
macro-instruction
points
to
the
CAMLST
macro-instruction.
DLTA,
the
first
operand
of
CAMLST,
specifies
that
an
alias
be
deleted.
ALIAS,
the
second
operand,
specifies
the
main
storage
location
of
an
8-byte
area
into
which
you
have
placed
the
alias
to
be
deleted.
HOW
TO
CONNECT
CONTROL
VOLUMES
You
connect
two
control
volumes
by
using
the
INDEX
and
CAMLST
macro-instructions.
If
a
control
velume
is
to
be
connected
to
the
system
residence
volume,
you
need
supply
only
the
serial
nurober
of
the
volume
to
be
connected
and
the
nawe
of
a
high
level
index
associated
with
the
volume
to
be
connected.
If
a
control
volume
is
to
be
connected
to
a
control
volume
other
than
the
system
residence
volume,
you
must
supply
the
serial
numbers
of
both
volumes
and
the
name
of
a
high
level
index
associated
with
the
volume
to
be
connected.
The
result
of
connecting
control
volumes
is
that
the
volume
serial
number
of
the
control
volUme
connected
and
the
name
of
a
high
level
Maintaining
the
Catalog
and
the
Volume
Table
of
Contents
15

index
are
entered
into
the
volume
index
of
the
volume
to
which
it
was
connected.
This
entry
is
called
a
control
volume
pointer.
A
control
volume
pointed
to
by
a
control
volun;e
cannot,
in
turn,
point
to
another
control
volume.
Example:
In
the
following
example,
the
contrel
voluroe
whose
serial
number
is
001555
is
connected
to
the
control
volume
numbered
000155.
The
name
of
the
high
level
index
is
HIGHINDX.
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
I
NEWCVOL
I
DC
I
CL6'001555'
I
L
_________
~
__________
~
_________________________________________________
J
The
INDEX
rracro-instruction
points
to
the
CAMLST
macro-instruction.
LNKX,
the
first
operand
of
CAMLST,
specifies
that
control
volumES
be
connected.
INDXNAME,
the
second
operand,
specifies
the
main
storage
location
of
an
8-byte
area
into
which
you
have
placed
the
name
of
the
high
level
index
of
the
volume
to
be
connected.
OLDCVOL,
the
third
operand,
specifies
the
main
storage
location
of
a
6-byte
area
into
which
you
have
placed
the
serial
number
of
the
volume
to
which
you
are
connecting.
NEWCVOL,
the
fcurth
operand,
specifies
the
main
storage
location
of
a
6-byte
area
into
which
you
have
placed
the
serial
number
of
the
volume
to
be
connected.
HOW
TO
DISCONNECT
CONTROL
VOLUMES
You
disconnect
two
control
volumes
by
using
the
INDEX
and
CAMLST
macro-instructions.
If
a
control
vclume
is
to
be
disconnected
from
the
system
residence
volume,
you
need
supply
only
the
name
of
the
high
level
index
associated
with
the
volurre
to
be
disconnected.
If
a
control
volume
is
to
be
disconnected
from
a
control
volume
other
than
the
system
residence
volume,
you
must
supply,
in
addition
to
the
name
of
the
high
level
index,
the
serial
nurr-ber
of
the
control
volume
from
which
you
want
to
disconnect.
The
result
of
disconnEcting
control
volumes
is
that
the
control
volume
pointer
is
removed
from
the
volume
index
of
the
volume
from
which
you
are
disconnecting.
Example:
In
the
following
example,
the
control
volume
that
contains
the
high
level
index
HIGHINDX
is
disconnected
from
the
system
residence
volume.
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
I
INDXNru~EI
DC
I CL8'HIGHINDX'
MUST
BE
8-BYTE FIELD I
L
_________
L
__________
L
_________________________________________________
J
The
INDEX
macro-instruction
points
to
the
CAMLST
macro-instruction.
DRPX,
the
first
operand
of
CAMLST,
specifies
that
control
volumes
be
disconnected.
INDEXNAME,
the
second
operand,
specifies
the
main
storage
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.
HOW
TO
CATALOG
A
DATA
SEr
You
catalog
a
data
set
by
using
the
CATALOG
and
CAMLST
macro-
instructions.
All
inde*
leve~s
required
to
catalog
the
data
set
must
exist
in
the
catalog,
or
an
exceptional
return
code
is
set.
You
must
build
a
complete
volume
list
in
main
storage.
This
volume
list
consists
of
volume
pointers
for
all
volurres
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.)
Example:
In
the
following
example,
the
data
set
named
A.B.C
is
cataloged
under
an
existing
index
structure
A.B.
The
data
set
is
stored
on
two
volumes.
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
, ,
DC
,
H'O'
SEQUENCE
NUMBER
,
L
_________
~
__________
~
_________________________________________________
J
The
CATALOG
macro-instruction
points
to
the
CAMLST
macro-instruction.
CAT,
the
first
operand
of
CAMLST,
specifies
that
a
data
set
be
cataloged.
DSNAME,
the
second
operand,
specifies
the
main
storage
location
of
an
area
into
which
you
have
placed
the
fully
qualified
name
of
the
data
set
to
be
cataloged.
VOLUMES,
the
fourth
operand,
specifies
the
main
storage
location
of
the
volume
list
you
have
built.
HOW
TO
REMOVE
DATA
SET
REFERENCES
FROM
THE
CATALOG
You
remove
data
set
references
from
the
catalog
by
using
the
CATALOG
and
CAMLST
macro-instructions.
Example:
In
the
following
example,
references
to
data
set
A.B.C
are
removed
from
the
catalog.
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
I
DSNAME
I
DC
I
CL6'A.B.C'
ONE
BLANK
FOR
DELIMITER I
L
_________
~
___________
~
_________________________________________________
J
The
CATALOG
macro-instruction
points
to
the
CAMLST
macro-instruction.
UNCAT,
the
firs·t
cperand
of
CAMLST,
specifies
that
references
to
a
data
Maintaining
the
Catalog
and
the
Volurre
Table
of
Contents
17

set
be
removed
from
the
catalog.
DSNAME,
the
second
operand,
specifies
the
main
storage
location
of
an
area
into
which
you
have
placed
the
fully
qualified
name
of
the
data
set
whose
references
are
to
be
removed.
HOW
TO
RECATALOG
A
DATA
SET
You
recatalog
a
cataloged
data
set
by
using
the
CATALOG
and
CAMLST
macro-instructions.
Recataloging
is
usually
performed
when
new
volume
pointers
must
be
added
to
the
volume
list
of
a
data
set.
You
must
build
a
complete
volume
list
in
main
storage.
This
volurre
list
consists
of
volume
pointers
for
all
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.)
Example:
In
the
following
example,
the
data
recataloged.
A new
volume
pointer
is
added
to
the
previously
contained
only
two
volume
pointers.
set
named
A.B.C
is
volume
list,
which
r---------T----------T-------------------------------------------------,
I Name I
Operationl
Operand
I
~---------+----------+-------------------------------------------------~
RECATLG
DSNAME
VOLUMES
CATALOG
I
RECATLG
RECATALOG
DATA
SET
A.B.C,
Check
Exceptional
Returns
ADDING
A
NEW
VOLUME
POINTER
TO
THE
VOLUME
CAMLST
RECAT,DSNAME"VOIUMES
LIST.
DC
CL6'A.B.C'
ONE
BLANK
FOR
DELIMITER
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
I I I
THE
OBTAIN ROUTINE I
L
_________
~
__________
~
_________________________________________________
J
The
OBTAIN
macro-instruction
points
to
the
CAMLST
macro-instruction.
SEARCH,
the
first
operand
of
CAMLST,
specifies
that
a
DSCB
be
read
into
main
storage.
DSABC,
the
second
operap.d~
specifies
the
main
storage
location
of
a
44-byte
area
into
which
you
have
placed
the
fully
qualified
name
of
the
data
set
whose
associated
DSCB
is
to
be
read.
VOLNUM,
the
third
operand,
specifies
the
main
storage
location
of
a
6-byte
area
into
which
you
have
placed
the
serial
nurrber
of
the
volume
containing
the
required
DSCB.
WORKAREA,
the
fourth
operand,
specifies
the
main
storage
location
of
a
350-byte
work
area
that
is
to
contain
the
DSCB~
After
execution
of
these
macro-instructions,
the
first
96
b~tes
of
the
work
area
contain
the
data
portion
of
the
fornat
1 DSCB;
the
next
five
bytes
contain
the
absolute
track
address
of
the
DSCB.
The
OBTAIN
routine
uses
the
rest
of
tht
area
as
a
~ork
area.
HOW
TO
DELETE
A
DATA
SET
You
delete
a
data
set
stored
on
direct-access
volumes
by
using
the
SCRATCH
and
CAMLSTmacro-instructions.
This
caUSES
all
data
set
control
blocks
<DSCB)
for
the
data
set
to
be
deleted,
and
all
space
occupied
by
the
data
set
to
be
made
available
for
reallocation.
If
the
data
set
to
be
deleted
is
sharing
a
split
cylinder,
the
space
will
not
be
made
available
for
reallocation
until
all
data
sets
on
the
split
cylinder
are·
deleted.
A
data
set
cannot
be
deleted
if
the
expiration
date
in
the
fermat
1
DSCB
has
not
passed,
unless
you
choose
to
ignore
the
expiration
date.
You
can
ignore
the
Expiration
date
by
using
the
OVRD
option
in
the
CAMLST
macro-instruction.
If
a
data
set
to
be
deleted
is
stored
on
more
than
one
volume,
either
a
device
must
be
available
on
which
to
mount
the
volumes,
or
at
least
one
volume
must
be
mounted.
In
addition,
all
other
required
volu~es
must
l:e
serially
mountable.
Certain
volumes,
such
as
the
system
residence
volume,
must
always
be
mounted.
When
deleting
a
data
set,
you
must
tuild
a
complete
volume
list
in
main
storage.
This
volume
list
consists
of
volurre
pointers
for
all
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
Maintaining
the
Catalog
and
the
Volurre
Table
of
contents
19

volume
pointer
consists
of
a
4-tyte
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
volurres.
(Device
codes
are
contained
in
Appendix
B
of
this
chapter.)
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:
volumes.
In
the
following
example,
data
set
A.B.C
is
deleted
from
two
The
expiration
date
in
the
format
1
DSCB
is
ignored.
r---------T----------T-------------------------------------------------,
I Name I
Operation
I
Operand
I
~---------+----------+-------------------------------------------------~
DELABC
DSABC
VOLIST
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
CAMLST
I SCRATCH,DSABC"VOLIST"OVRD
VOLUMES,
IGNORING I
DC
I
CL44'
A. B.
C'
THE
EXPIRATION I
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
DC
I
H'O'
SEQUENCE
NUMBER
I
L
_________
~
__________
~
_________________________________________________
J
The
SCRATCH
macro-instructicn
points
to
the
CAMLST
macro-instruction.
SCRATCH,
the
first
operand
of
CAMLST,
specifies
that
a
data
set
be
deleted.
DSABC,
the
second
operand,
specifies
the
main
storage
location
of
a
44-nyte
area
into
which
you
have
placed
the
fully
qualified
name
of
the
data
set
to
be
deleted.
VOLIST,
the
fourth
operand,
specifies
the
main
storage
location
of
the
volunie
list
you
have
built.
OVRD,
the
sixth
operand,
specifies
that
the
expiration
date
be
ignored
in
the
OSCB
of
the
data
set
to
be
deleted.
HOW
TO
RENAME
A
DATA
SET
You
rename
a
data
set
stored
on
direct-access
volumes
by
using
the
RENAME
and
CAMLST
macro-instructions.
This
causes
the
data
set
nanie
in
all
format
1
data
set
control
blocks
(DSCB)
for
the
data
set
to
be
replaced
by
the
new
narre
that
you
supply_
If
a
data
set
to
be
renanled
is
stored
on
more
than
one
volume,
either
a
device
must
be
available
on
which
to
mount
the
volumes,
or
at
least
one
volume
must
be
mounted.
In
addition,
all
other
required
volumes
must
be
serially
mountable.
Certain
volumes,
such
as
the
system
residence
volume,
must
always
be
mounted.
When
renaming
a
data
set,
you
must
build
a
complete
volume
list
in
main
storage.
This
volun'e
list
consists
of
volume
pointers
for
all
20
Table of contents
Other IBM Desktop manuals

IBM
IBM A40 TYPE 6840 Owner's manual

IBM
IBM 5155 User manual

IBM
IBM R50 Series Owner's manual

IBM
IBM NetVista A20 Technical document

IBM
IBM 3270 User manual

IBM
IBM System x3950 User manual

IBM
IBM RT PC User manual

IBM
IBM 9234CNU - Lotus Foundations Server User manual

IBM
IBM Aptiva 2156 Owner's manual

IBM
IBM NetVista A20 User manual

IBM
IBM PC 300PL Types 6862 User manual

IBM
IBM NetVista X40

IBM
IBM NetVista A20i User manual

IBM
IBM NetVista A30 User manual

IBM
IBM NetVista A20 User manual

IBM
IBM A50 User manual

IBM
IBM PC 300 Troubleshooting guide

IBM
IBM 9114-275 - IntelliStation POWER 275 User manual

IBM
IBM x 340 Series Owner's manual

IBM
IBM NetVista A20 Setup guide