C20 1663 0_System_360_Operating_System_User_Libraries_Feb67 0 System 360 Operating User Libraries Feb67

C20-1663-0_System_360_Operating_System_User_Libraries_Feb67 C20-1663-0_System_360_Operating_System_User_Libraries_Feb67

User Manual: C20-1663-0_System_360_Operating_System_User_Libraries_Feb67

Open the PDF directly: View PDF PDF.
Page Count: 54

IBM
System/360
Operating
System
User Libraries
The
purpose
of
this
document
is
to
illustrate,
by
means
of
a
program
testing
application,
the
creation,
use,
and
maintenance
of
user
program
libraries
operating
under
the
IBM
System/360
Operating
System.
The
program
testing
application
was
chosen
for
illustrative
purposes
only
and
should
not
be
construed
as
a
workable
system
as
it
stands.
The
information
in
this
text
is
based
on
information
and
components
available
at
the
time
of
the
initial
release
of
Operating
System/360.
The
use
of
Assembler
E,
COBOL
E,
FORTRAN
E,
and
Linkage
Editor
E
is
assumed.
The
user
should
therefore
refer
to
the
following
texts
and
their
most
recent
technical
newsletters
for
the
most
complete,
accurate,
and
up-to-date
information:
IBM
System/360
Operating
System:
Utilities
(C28-6586)
IBM
System/360
Operating
System:
System
Generation
(C28-6554)
IBM
System/360
Operating
System:
Linkage
Editor
(C28-6538)
IBM
System/360
Operating
System:
Job
Control
Language
(C28-6539)
IBM
System/360
Operating
System:
System
Programmer's
Guide
(C28-6550)
C20-1663-0
Programming
This
text
is
a
major
revision
of,
and
obsoletes
IBM
Operating
System/360
User
Libraries,
Preliminary
Edition
(Y20-0008).
The
major
changes
are
on
pages
12,
14,
22,
32, 34,
and
37.
Copies
of
this
and
other
IBM
publications
can
be
obtained
through
IBM
branch
offices.
Address
comments
concerning
the
contents
of
this
publication
to
IBM,
Technical
Publications
Department,
112 East Post
Road,
White
Plains,
N.
Y.
10601
©
International
Business
Machines
Corporation,
1966
Technical Newsletter Re: Form No.
C20-1663-0
This Newsletter No.
N20-1010-0
Date
February
15,
1967
Previous Newsletter Nos. None
IBM
SYSTEM/360
OPERATING
SYSTEM USER I.JBRARIES
This
technical
newsletter
amends
the
publication
IBM
System/360
Operating
System
User
Libraries
(C20-1663-0).
Make
the
corrections
and
additions
listed
below
in
existing
copies
of
the
publication.
Cover
and
Preface
Pages
Add
the
following
to
the
list
of
reference
texts
on
both
pages:
IBM
System/360
Operating
System:
System
Control
Blocks
(C28-6628)
Page
12
In
the
drawing
at
top
of
page,
change
the
word
above
the
volume
containing
the
SYSl.
PROCLIB
from
"TESTVL"
to
"SYSRES".
In
the
program
listing
below
this
drawing,
add
a
comma
at
the
end of
the
second
line
of
item
4:
"DISP=(NEW,
KEEP),
".
Similarly,
add
a
comma
at
the
end of
the
second
line
of
item
5.
The
commas
indicate
continuation
of
the
data
definitions.
Page
32
In
the
Note
at
bottom
of
page,
change
the
next
to
last
line
from:
require
an
additional
parameter,
that
is
VOLUME=SER-TESTVL.
to
the
following:
require
two
additional
parameters,
that
is,
VOLUME=SER=TESTVL
and
UNIT-2311.
Page
37
Add "(
see
C28-6628)"
to
the
end
of
the
next
to
last
paragraph.
Note:
File
this
newsletter
at
the
back
of
the
publication.
It
will
provide
a
reference
to
changes,
a
method
of
determining
that
all
amendments
have
been
received,
and
a
check
that
the
publication
contains
the
proper
page
s.
IBM Corporation, Technical Publications Dept.,
112
E.
Post Road,
White
Plains,
N.
Y.
10601
Printed in
U.S.A.
N20-1010-0
(C20-1663-0)
Page
1 of 1
PREFACE
The
purpose
of
this
document
is
to
illustrate
the
creation,
use,
and
maintenance
of
user
program
libraries
operating
under
OS/360.
To
facilitate
the
explanation
of
interplay
and
control
among
the
various
components
of
OS/360,
the
application
of
program
testing
has
been
chosen
as
a
vehicle
to
demonstrate:
Library
creation
and
use
Cataloged
procedure
creation
and
use
Library
maintenance
Backup
procedures
The
program
testing
application,
hereafter
referred
to
as
TESTS,
was
chosen
for
illustrative
purposes
only
and
should
not
be
construed
as
a
workable
system
as
it
stands.
The
information
in
this
manual
is
based
on
the
information
and
components
available
at
the
time
of
the
initial
release
of
OS/360.
The
use
of
Assembler
E,
COBOL
E,
FORTRAN
E,
and
Linkage
Editor
E
is
assumed.
The
user
should
therefore
refer
to
the
following
texts
and
their
most
recent
technical
newsletters
for
the
most
complete,
accurate,
and
up-to-date
information:
IBM
System/360
Operating
System
Utilities
(C28-6586)
IBMSystem/360
Operating
System System
Generation
(C28-6554)
IBM
System/360
Operating
System
Linkage
Editor
(C28-6538)
IBM
System/360
Operating
System
Job
Control
Language
(C28-6539)
IBM
System/360
Operating
System
System
Programmer's
Guide (C28-6550)
CONTENTS
Definition
of
a
Library.
. . . . . . . . . . .
Overall
Example
-
Program
Testing
-
"TESTS"
.
The
Test
Cycle.
. . . . .
Overall
Flow.
. . . . . . . . . . .
Creation
of
TES
TS
Libraries
.
Volume
Initialization
. . . . . . .
Library
Naming
and
Creation.
Utilization
of
TESTS.
. . . .
Source
Library.
. . . . . . . . . .
Source
Module
Creation.
. .
Source
Module
Correction.
Obj
ect
Module
Creation
. .
Load
Module
Creation.
. .
Execution
of
Load
Modules.
Library
Maintenance.
.
......
.
Reducing
Extent
Requirements
.
Purging
Unused
Members
. . . . .
Completed
Programs
. . .
Library
Backup
-
Audit
Trail
....
Backup
Copy . . . . . . . . . . .
Reinitialize
TESTS
. . . . . . . .
Multiple
Job
Flow
in
TESTS
. . . .
1
2
2
4
9
9
9
14
14
14
14
14
19
26
29
29
30
30
37
37
40
43
LIST
OF
ILLUSTRATIONS
Figure
1.
Figure
2.
Figure
3.
Figure
4.
Figure
5.
Figure
6.
FigUre
7.
Figure
8.
Figure
9.
Figure
10.
Figure
1I.
Figure
12.
Figure
13.
Figure
14.
Figure
15.
Figure
16.
Figure
17.
Figure
18.
Figure
19.
Figure
20.
Figure
21.
Figure
22.
Figure
23.
Figure
24.
Figure
25.
Figure
26.
Figure
27.
Figure
28.
Figure
29.
Libraries
in
TES
TS
system
Job
flow
of
one
program
from
source
to
execution:
source
program
to
source
library
Job
flow of
one
program
from
source
to
execution:
source
program
in
source
library
assembled
into
object
library
Job
flow of
one
program
from
source
to
execution:
object
module
is
link-
edited
and
becomes
a
load
module
in
the
load
library
(TEST.
LOAD)
Job
flow of
one
program
from
source
to
execution:
execution
of
program
A13
To
initialize
the
TESTS
volume
To
create
the
TESTS
libraries
and
add
a
procedure
that
will
add
procedures
To
add
a
procedure
to
SYS1.
PROCLIB
with
ADDPROCS
To
enter
symbolic
(source)
module
into
the
source
library
Form
fOl
entering
changes
into
the
source
library
To
make
corrections
to
the
source
library
Results
of
source
correction
To
compile
or
assemble
a
source
module
from
the
source
library
into
the
obj
ect
library
To
create
object
modules
using
TESTS
cataloged
procedure
for
FORTRAN
To
create
object
modules
using
TESTS
cataloged
procedure
for
COBOL
To
linkage-edit
multiple
load
modules
in
one
Linkage
Editor
run
To
test
programs
from
the
load
library
Generalized
compile-Linkage-Edit
-
Execute
procedure
Increasing
the
available
space
in
a PDS
To
list
TESTS
system
control
data
To
reduce
extent
requirements
on
a
volume
To
print
and
punch
a
source
program
and
delete
it
from
the
source,
object
and
load
libraries
PRINT,
PUNCH,
and
DELETE
To
concatenate
utility
control
statements
To
obtain
a
backup
copy
of
the
TESTS
volume
Document
received
from
BACKUP
procedure
To
reinitialize
the
TESTS
volume
Document
received
from
reinitializing
the
TESTS
volume
(see
Figure
27
for
execution)
Job
flow of
multiple
programs
from
source
to
execution
DEFINITION
OF
A LIBRARY
A
'library'
is
a
partitioned
data
set
(PDS),
which
is
a
data
set
with
one
or
more
sequentially
organized
members,
residing
on
and
not
exceeding
in
space
one
direct
access
volume.
OS/360
libraries
may
be
categorized
as
follows:
1.
Libraries
required
by
OS/360
for
its
operation,
and
residing
on
either
the
system
residence
volume
or
some
other
direct
access
volume.
2.
Libraries
required
when
using
certain
processors
or
features
of
08/360
(for
example,
the
COBOL
and
FORTRAN
libraries),
but
not
required
for
the
system
to
function.
3.
Libraries
defined,
organized,
and
named
by
the
user
to
best
accommodate
the
installation's
requirements.
The
libraries
falling
in
category
1
and
referred
to
in
this
document
are:
SYSI.
LINKLIB
(Link
library)
SYSI.
PROCLIB
(Procedure
library)
Those
falling
in
category
2
and
referred
to
here
are:
SYSl.MACLIB
(Macro
library)
SYSI.
COB LIB (COBOL
library)
SYSl.
FORTLIB
(FORTRAN
library)
Full
descriptions
of
these
two
categories
may
be
found
in
C28-6554.
Libraries
in
category
3
may
be
given
simple
or
qualified
names.
Since
a
library
is
nothing
more
than
a
data
set,
it
may
be
created
during
execution
of
any
job
step
by
defining
the
library
name,
allocating
space
on
a
volume,
etc.
(see
"Library
Naming
and
Creation").
While
libraries
in
categories
1
and
2
are
neither
created
nor
named
by
the
user,
they
may
be
accessed
and
used
as
in
category
3.
User
programs
may
be
located
in
the
Link
library.
To
execute
such
a
program,
the
user
merely
specifies
the
name
of
this
program
in
the
EXEC
statement.
User
programs
may
also
be
located
in
a
library
createdby
the
user
(category
3).
To
execute
a
program
in
a
user-created
library,
the
user
must
define
this
library
by
inserting
a
data
definition
(DD)
statement
(with a
ddname
of
JOBLIB)
prior
to
the
EXEC
statement
or
statements
requiring
the
use
of
this
library.
This
DD
statement
causes
OS/360
to
search
the
identified
user's
library
for
the
program
to
be
executed
before
searching
the
Link
library.
1
OVERALL
EXAMPLE
-
PROGRAM
TESTING
-
"TESTS"
In
many
installations
the
development
and
testing
of
applications
consumes
a
great
deal
of
effort
and
time.
While
testing
systems
vary
from
installation
to
installation,
certain
library
maintenance
methods
should
be
followed
to
take
full
advantage
of
the
computing
system.
The
Test
Cycle
The
sample
testing
system
example,
TESTS,
is
based
on
the
concept
of
using
a
separate
disk-pack
exclusively
for
all
program
testing
within
an
installation.
The
basic
reason
for
this
approach
is
to
isolate
undebugged
programs
and
to
ensure
that
they
do
not
contaminate
space
on
other
packs
or
the
system
residence
volume.
TESTS
is
further
thought
of
as
a
"stacked
testing"
procedure
in
which
it
is
desirable
to
perform
testing
at
convenient
intervals
during
a
shift
and
thus
stack
all
tests
to
be
performed,
mount
the
TESTS
pack,
and
perform
the
tests
required.
This
approach
will
probably
be
valid
for
most
OS/360
installations,
at
least
in
the
early
phases
of
their
development.
From
an
operations
point
of
view,
TESTS
is
thought
of
as
an
application
in
which
the
user
may
specify
certain
standard
procedures
to
be
performed
in
this
test
environment.
From
a
programmer's
point
of
view
the
tests
performed
on
his
program
are
done
on
a
remote
basis.
The
programmer
must
request
the
type
of
test
he
wishes.
The
TESTS
system
consists
of
three
libraries,
or
PDS's.
As
shown
in
Figure
1,
a
library
is
available
for
each
of
the
following:
Source
modules
-
programs
in
source
language
Object
modules
-
compiled
programs
or
subroutines
Load
modules
-
Linkage
Editor
output
(executable
programs)
The
programmer's
first
action
is
to
request
that
his
source
module
be
entered
into
the
source
library.
Once
this
is
done,
he
may
request
one
or
more
of
the
following:
1.
Compilation
2.
Modification
of
his
source
program
3.
Linkage
editing
4.
Execution
5.
Linkage
editing
to
combine
additional
object
or
load
modules
6.
Compile
-
linkage
edit
-
execute
Each
of
the
modules
(source,
object,
load)
is
retained
in
the
appropriate
library
until
the
test
cycle
has
been
completed
and
the
programmer
wishes
to
remove
it.
2
TESTVL
1.
Source
code
and
modifications
entered
2.
Compilations
3.
Link-edit
runs
4.
Program
executions
Figure
1.
Libraries
in
TESTS
system
3
Overall
Flow
Thus
the
programmer
debugs
his
program
using
computer
output.
He
then
updates
and
retests
his
program
by
requesting
the
appropriate
phases
mentioned
above,
without
having
to
continually
maintain
a
source
deck
throughout
the
complete
compilation
and
testing
cycle.
Once
his
program
has
been
thoroughly
tested,
he
may
request
(among
other
things)
the
updated
source
deck,
a
listing,
and
the
deletion
of
his
program
from
the
three
TEST
libraries.
To
illustrate
the
flow
of
operations
that
occur
in
the
TESTS
application
environment,
two
examples
have
been
given.
Both
consist
of
a
diagram-
matic
representation
of
the
job
stream,
the
processing
to
occur,
and
the
libraries
used,
as
well
as
a
description
of
the
function
of
each
statement
in
the
job
stream.
The
statements
in
the
job
stream
are
illustrative
rather
than
actual.
The
actual
job
control
language
and
control
state-
ments
are
specified
in
the
detailed
illustrations
of
each
phase
of
the
TEST
application.
The
first
example
(Figures
2-5)
illustrates
the
processing
of A13, a
source
program
that
is
to
be
placed
in
the
source
module
library
(TEST. SOURCE),
assembled
into
an
object
module
library
(TEST. OBJEC T),
link-edited
into a
load
module
library
(TEST.
LOAD)
and
executed
from
TEST.
LOAD.
The
second
example
(see
"Multiple
Job
Flow
in
TESTS")
illustrates
the
flow
of
multiple
programs
operating
in
the
TESTS
environment
and
is
more
meaningful
as
a
summary
of
the
contents
of
this
document.
4
SYSRES
I EBUPDAT
AI
OS/360
SOURCE DECK
./
ADD
AI3
PROC=
NEWSORC
Job
Stream
AI.
EXEC
PROC=NEWSORC
A2.
ADD
Al3
A3.
Source
Deck
A2
A3
TESTVL
Processing
Incurred
Invokes
cataloged
procedure
to
place
source
program
on
source
library
(see
Figure
9).
Indicates
the
name
of
the
source
program,
A13.
The
source
statements
that
are
entered
into
TEST.SOURCE
as
A13.
Figure
2.
Job
flow
of
one
program
from
source
to
execution:
source
program
to
source
library
5
SYSRES
LI
NKEDIT
COBOL
FORTRAN
OS/360
II
SYSPUNCH
DO
AI3
I I
SYSIN
DO
AI3
81
II
EXEC
PROC=TESTASSM
Job
Stream
Bl.
EXEC PROC=TESTASSEM
B2.
SYSIN
DD
A13 (Input)
B3.
SYSPUNCH
DD
A13 (Output)
TESTVL
83
Processing
Incurred
Invokes
the
cataloged
procedure
to
assemble
the
source
module
A13
(see
Figure
13).
Represents
the
DD
statement
indicating
the
name
of
the
source
module
to
be
assembled.
Represents
the
DD
statement
indicating
that
the
member
name
A13
be
assigned
to
the
output
object
module
to
go
into
TEST.
OBJECT.
Figure
3.
Job
flow
of
one
program
from
source
to
execution:
source
program
in
source
library
assembled
into
object
library
6
SYSRES
LINKEDIT
COBOL
FORTRAN
OS/360
NAME
AI3
INCLUDE
AI3
CI
II
EXEC
PROC=TESTLINK
Job
Stream
Cl.
EXEC
PROC=TESTLINK
C2.
INCLUDE A13
C3.
NAME A13
TESTVL
TEST.
LOAD
Processing
Incurred
Invokes
the
cataloged
procedure
to
link-edit
the
object
module
(see
Figure
16).
Represents
the
Linkage
Editor
statement
that
speCifies
the
name
of
the
object
module
to
be
link-edited,
A13.
Represents
the
Linkage
Editor
statement
that
specifies
the
name
to
be
assigned
to
the
output
load
module
going
into
the
load
library.
Figure
4.
Job
flow
of
one
program
from
source
to
execution:
object
module
is
link-
edited
and
becomes
a
load
module
in
the
load
library
(TEST.
LOAD)
7
360
II
EXEC PGM=AI3
Job
Stream
DI.
JOBLIB
TEST.
LOAD
D2.
EXEC PGM=AI3
*D3. OUTPUT
Al3
*D4. INPUT
Al3
TESTVL
Processing
Incurred
Specifies
to
the
control
program
that
the
program
to
be
executed
resides
in
the
library
named
TEST.
LOAD.
Specifies
the
member
name,
A13,
of
the
program
in
the
library
to
be
executed.
Symbolically
represents
one
or
more
DD
statements
required
to
specify
the
devices
and
data
sets
required
for
the
output
results
of
A13.
Symbolically
represents
one
or
more
DD
statements
required
to
specify
the
sources
of
input
data
for
A13.
*Must
be
specified
by
the
programmer
or
set
up
as
standard
DD
statements
for
input
and
output
at
the
user's
descretion.
Note:
It
is
not
the
intent
of
this
document
to
stress
test
data
set
manipulation
and
control-.--
Figure
5.
Job
flow
of
one
program
from
source
to
execution:
execution
of
program
Al3
8
CREATION
OF
TESTS
LIBRARIES
Two
phases
are
required
before
TESTS
may
be
put
into
operation:
(1)
initialization
and
(2)
library
naming
and
creation.
Volume
Initialization
In
this
phase
the
Independent
utility
DASDI
(see
C28-65.86)
is
used
to
create
a
volume
label
and
to
allocate
space
for
the
Volume
Table
of
Contents
(VTOC).
Figure
6
shows
the
control
statements
required
for
this
phase.
The
volume
serial
number
to
be
placed
in
the
volume
label
is
TESTVL.
Library
Naming
and
Creation
Three
libraries
(partitioned
data
sets)
are
required
in
the
TESTS
environment
(see
note
at
end
of
this
section).
They
will
be
named:
TEST.
SOURCE -
for
source
modules
TEST.
OBJECT
-
for
object
modules
TEST.
LOAD -
for
load
modules
Although
the
three
libraries
in
the
TESTS
example
are
not
cataloged,
each
library
is
assigned
a
two-element
name.
The
reason
for
this
is
that
someone
else
may
wish
to
refer
to
a
data
set
called
SOURCE.
To
avoid
duplication,
the
second
person
could
call
his
library
MY. SOURCE
instead
of
TEST.
SOURCE.
It
is
apparent
that
all
users
of
a
test
volume
could
have
unique
names
for
their
libraries.
However,
if
this
were
the
case,
each
user
would
have
to
develop
his
own
procedure
or
use
the
TESTS
procedures
and
override
certain
DD
cards.
The
approach
taken
in
the
TESTS
example
is
a
more
standardized
one
permitting
more
accurate
control,
easier
procedure
specification,
and
more
convenient
maintenance
of
the
TESTS
volume.
This
standardization,
however,
requires
the
programmer
to
name
his
program
according
to
some
convention.
A
member
(module)
or
program
may
have
a
name
as
large
as
eight
characters.
Without
some
type
of
naming
convention,
two
independent
programmers
could
name
their
programs
by
the
same
name
-
say,
MATRIX.
This
would
be
intolerable,
especially
if
both
programs
were
expected
to
be
in
TESTS
at
the
same
time.
Therefore,
a
naming
con-
vention
must
be
established.
For
our
example
we
will
assign
a
two-digit
code
to
individuals
or
departments.
Thus
department
23
will
submit
a
program
named
MATRIX23
to
TESTS.
It
must
retain
this
name
at
least
for
the
life
of
this
program
within
TESTS.
9
Figure
7
shows
the
job
control
statements
required
to
allocate
space
for
and
create
the
three
libraries
as
well
as
to
enter
a
standard
procedure,
described
in
the
following
paragraphs,
into
SYS1.
PROCLIB.
It
is
desirable
to
develop
standard
procedures
for
the
testing
environment
such
as
those
for
updating
source
modules,
linkage
editing,
compiling,
etc.,
and
to
place
these
procedures
in
the
procedure
library
(SYS1.
PROCLIB).
This
document
describes
several
of
the
procedures
used
in
TESTS.
Since
the
entering
of
a
procedure
into
the
SYS1. PROC LIB
is
a
procedure
itself,
it
will
also
be
convenient
to
place
that
procedure
in
SYSl.
PROCLIB.
This
procedure
(called
ADDPROCS)
was
initially
put
into
the
SYS1.PROCLIB
via
the
UPDATE
utility,
as
seen
in
Figure
7.
The
use
of
ADDPROCS
for
adding a
procedure
to
SYSl.
PROCLIB
is
illustrated
in
Figure
8.
It
is
possible
to
add
to
or
delete
from
a
procedure
in
SYS1.PROCLIB
through
the
UPDATE
utility
program.
However,
since
a TESTS
procedure
would
represent
relatively
few
cards,
a change
to
the
proce-
dure
could
also
be
accomplished
by
updating
the
original
card
deck.
The
updated
procedure
deck
would
then
be
added
to
SYSl.PROCLIB
using
the
ADDPROCS
procedure
(Figure
8). Although
the
original
procedure
has
the
same
name
as
the
new
one,
the
ADDPROCS
will
remove
the
pointers
in
SYS1.PROCLIB
to
the
old
one
and
point
to
the
new
procedure.
Although
not
illustrated,
all
procedures
for
TESTS
have
been
entered
into
SYS1.PROCLIB.
Further
references
to
these
TESTS
procedures
will
assume
their
residence
in
SYSl.
PROCLIB.
Note:
Although
not
implemented
in
the
TESTS
examples,
it
would
be
advantageous
to
preallocate
space
for
all
utility
(work)
data
sets
-
for
example,
SYSUT1
and
SYSUT2 -
at
the
same
time
that
the
TESTS
libraries
are
created
(see
Figure
7).
If
this
were
done,
space
allocation
for
the
utility
(work)
data
sets
would
be
avoided
in
subsequent
procedures.
10
Card
1.
2.
3.
4.
5.
6.
CC2
i
1.
JOB
'INITIALIZE
DISK
ON
191
TO
VOLIO=TESTVL'
2.
MSG
TOOEV=1403,TOADDR=OOE
3.
CADEf
TOOEV=2311,TOAOOR=191,VOlID=SCRATCH
~
VlD
NEWVOlIO=TESTVl,OWNERID=INSTlWORK
5.
VTGCD
STRTADR=OOOl,EXTENT=0009
6.
Et'lD
Narrative
JOB
with
comments.
Messages
will
be
printed
on
the
printer.
The
specific
pack
to
be
initialized.
The
volume
will
be
called
TESTVL
and
owner
is
INSTLWORK.
The
VTOC
will
span
nine
tracks
starting
in
cylinder
0,
track
1.
END
card
indicating
end
of
JOB
to
the
DASDI
utility.
Figure
6;.
To
initialize
the
TESTS
volume
11
IIINITAL
1.
I
I'
EXEC
2.
I ISY
SUT2
DO
3.
IISYSPRINT
DO
4.
11001
DO
II
II
5.
11002
DO
II
II
6.
11003
DO
II
IISYSIN
DO
7.
I
ADD
, {IIPROC
EXEC
8.
IISYSUT2
DO
IISYSPRINT
DO
9.
1*
~-
JOB
007,INSTLWORK,MSGLEVEL=1
PGM=IEBUPDAT,PARM=NEW
OSNAME=SYS1.PROCLIB,DISP=OLO
TESTVL
SYSOUT=A
DSNAME=TE~T.SOURCE~VOLUME=SER=TESTVL,UNIT=2311,
SPACE=(TRK,(SO,lO,lO»,DISP=(NEW,KEEP),
OCB=(,RECFM=F,BLKSIZE=80)
DSNAME=TEST.OBJECT,VOLUME=SER=TESTVL,UNIT=2311,
SPACE=(TRK,(400,20,10»,DISP=(NEW,KEEP).
OCB=(,RECFM=F,BLKSIZE=80)
DSNAME=TEST.LOAO,VOLUME=SER=TESTVL,UNIT=2311,
SPACE=(TRK,400,20,10»,DISP=(NEW,KEEP)
DATA
ADOPROCS,Ol
,0,1
PGM=IEBUPDAT,PARM=NEW
OSNAME=SYS1.PROCLIBioISP=MOO
SYSOUT=A
.
*
*
*
*
*
1.
Execute
the
utility
UPDATE
program
(see
C28-6586)
in
order
to
enter
into
SYS1. PROCLIB a
standard
procedure
for
entering
procedures
into SYS1.
PROCLIB.
2.
The
data
to
follow
will
be
put
into
SYSl.
PROCLIB
(SYSIN
DD
DATA).
3.
Required
by
the
utility.
4,5,6.
DD
cards
which
allocate
space
on
TESTVL.
Note
that
each
library
directory
will
handle
10x(4
to
7)
members.
Therefore,
at
anyone
time,
a
library
directory
can
handle
10x6 (on
the
average)
=
60
members.
Note
also
that
the
actual
number
of
modules
that
can
be
stored
in
a
library
depends
on
the
size
of
the
modules
and
the
total
space
allocated
to
the
data
set.
7.
Control
statement
for
IE BUPDAT
It
names
the
member
to
be
added.
In
this
case
it
will
be
named
ADDPROCS.
8.
The
job
control
language
for
the
procedure
called
ADDPROCS.
9.
Required
by
the
utility
and
the
control
program.
Figure
7.
To
create
the
TESTS
libraries
and
add
a
procedure
that
will
add
procedures
12
i.
IISTEP
EXEC
ACOPROCS
2.
IIPROC.SYSIN
CO
DATA
3
.•
1
e~'o""""'ADO
~.,.'b
...
NEWSORCE,Ol,Ot 1
{
IINEWSORCE
lXEC
PGM=IEBUPOAT,PARM=NEw
IISYSPRINT 00
SYSOuT=A
4 IISYSUT2 00 DSNAME=TEST.SOURCE,VOlUME=SER=TESTVl,
II
UNIT=2311,DISP=OlD
5.
1*
- .
1.
Executes
the
ADDPROCS
procedure
(see
Figure
7)
for
entering
a
procedure
into
the
SYSl.
PROCLIB.
2.
DD
*
statement
for
the
ADDPROCS
procedure
-
that
is,
the
member(s)
follows.
Note:
the
DD
name
must
be
qualified
with
the
step
name
of
the
procedure.
The
step
name
is
PROC
(see
Figure
7).
3.
Required
by
the
utility
UPDATE
(see
C28-6586).
The
NEWSORCE
name
will
be
the
name
of
the
member
(procedure)
that
will
be
added.
4.
The
job
control
cards
that
will
be
entered
as
a
procedure.
5.
Required
by
the
utility
and
the
control
program.
Note:
Any
procedure
may
be
added
in
this
manner.
If
multiple
procedures
are
to
be
added
with
one
EXEC ADDPROCS,
the
ADD
cards
(with
the
procedure
names
and
associated
job
control
statements
to
be
entered)
must
be
in
binary
collating
sequence.
Figure
8.
To
add
a
procedure
to
SYSl.
PROCLIB
with
ADDPROCS
13
UTILIZATION
OF
TESTS
Source
Library
The
library
called
TEST
SOURCE
contains
source
modules.
Each
module
is
in
source
code
(Assembler,
FORTRAN, COBOL,
PL/I).
The
original
source
code
is
entered
into
the
TEST.
SOURCE PDS
once.
After
errors
are
detected
via
the
debugging
cycle;
the
programmer
requests
changes
to
his
source
code.
This
method
eliminates
voluminous
card
and
tape
handling
since
the
source
code
is
always
on
disk.
SOURCE MODULE CREATION
By
executing
the
NEWSORCE
procedure,
any
set
of
symbolic
coding
may
be
entered
into
the
TEST.
SOURCE
library.
This
source
coding
then
becomes
a
member
of
the
source
library,
with
a
program
name
specified
by
the
programmer.
Figure
9
illustrates
this
method.
Note
that
NEWSORCE
assigns
a
sequence
number
to
each
source
statement.
This
sequence
number
can
be
referenced
by
the
programmer
when
making
changes
to
the
source
module.
SOURCE MODULE CORRECTION
After
a
debugging
run,
changes
to
the
original
source
code
may
be
needed.
The
procedure
CHGSORCE
allows
the
programmer
to
specify
which
original
source
statement(s)
he
desires
to
have
deleted
(if any)
and
whether
he
wishes
new
source
statements
added
to
the
original
source.
A
standard
TESTS
form
is
illustrated
to
allow
the
subsequent
additions
and
deletions
of
source
code
(see
Figure
10).
The
implementation
of
these
changes
is
shown
in
Figure
11,
and
the
listed
results
indicating
what
took
place
is
shown
in
Figure
12.
Obj
ect
Module
Creation
Once
the
source
modules
have
been
entered
on
TEST
.SOURCE,
they
are
processed
by
one
of
the
language
translators
(Assembler,.
FORTRAN,
PL/I,
or
COBOL).
The
output
of
a
language
translator
is
defined
as
an
object
module,
which
in
this
application
becomes
a
member
in
the
object
library
(TEST.
OBJECT).
14
SOURCE CODE MODULE
./
NUMBR
OOOOOOOO~OOOOOOOO~00000010~00000010
./
.
------ADD
t:l:3~
01
~
0, 1
I III I
·
..
·
..
··"is:nS!]R(~.
S'y':?
L·I
Dtl
DAT1~
I III I
II
III
PR~OC=NE[·fst!f<:CE
.
III I II
G I I
II
11000
00
olooooooooooolluuuooooooooooooooooooooooooooOOOOOOOOO
l234517
9W"nU~ft~Dq~~nn~u~a~aa~~nUM~.n
••
g~ua~a~~~U~~~~MH~~~9H~a
1111
11
111111111111111111111111111111111111111111111111111111
2222222222222222122222222222222222222222222222222222222
I
"NE~SORCE
EXEC
PGM=IEBUPOAT,PARM=NEW
IISYSPRINT
00
SYSOUT=A
2.
IISYSUT2
DO
OSNAME=TEST.SOURCE,VOlUME=SER=TESTVl,
II
UNIT=2311,OISP=OlD
1.
Execute
the
NEWSORCE
procedure.
2.
NEWSORCE
procedure
in
SYS1.PROCLIB.
3.
Name
the
added
member
B13.
4.
Sequence-number
the
source
code,
starting
at
10
and
incrementing
by
10.
5.
Symbolic
code
to
be
entered
into
TEST.
SOURCE.
CC7:2.
~
*
6.
Required
by
IEBUPDAT (C28-6586)
and
reader-interpreter.
~ote:
Source
code
for
multiple
members
may
be
entered
with
one EXEC NEWSORCE;
however,
the
ADD
card
with
the
member
name
and
associated
source
code
must
be
in
collating
sequence
by
me~ber
name.)
Figure
9.
To
enter
symbolic
(source)
module
into
the
source
library
15
GENERAL
PURPOSE
CARD
PUNCH
LAYOUT
/;
NAME DEPT. BLDG. PHONE DATE
SHEET OF
I
~checksquareiftobepunched
II
I 2 3 4 5 6 7 8 9
10
"
12
13 14 15
16
17
18 19
20121
22
2~
2425
26
27
28
29
30131 3213<
3'
3~
3637
38
3940
41
4243
44
4~
4E
474849
50
51
52
53/
J
73
74
7576
7
'8
9
80
{
II
E
Ix
EC
Ie
HG
so
RC E
/1
III
CH
G~
aiR
CE sly
SI
N
DD
bA
TA
~
III
o
~
napE
~f
~.~
I
IP:
0
~ra
n p
"/
v. I
CIH
NlQrn
lB'
3
p2.
0 1 I I
%
FI
R
S--'I
ILA
ST
· I
Ir.::E
LET
,
II'"
· I
IDE
LEIT
~rp
¢lrJ
, 9 7;
01t
¢,'J
19
8~
V · I
IDE
LEIT
¢Itf
!~rJ
211
50
¢Ift
(11¢
Z{i
S'~
\
I
IDE
LEIT , \ l
I
IDE
LET
,
~
S)l
~F~C
ES
I,<~r
~EllV
ENT~
'C~L
LP,
~
S~,
o{.ll~
1\Ji'--'
~l\T
,TUfl
Rl=i
t"h
I Nc .
7~
EO
1\
' S e
qn
o
\ \
~
GO
'TO 6 (;:;
~
,
lDl¢
~~~
J
?"
'fiR.
IT
Ei( b
~
'I~
IS-)
No
'\
r.
Y'R.
...
P
AY
Pi.
NI
....
PII
YI W
r.
To
D4
r~
!:1M
()()
N7\
\ n.,,;,
ttl
y
J/
IUJ
~
IT
rt:
( 6 "Ib
"7
)
I"
" \
~ld
~
rJ
I
,
J
1/
/
I~
I * ,
I 2 3 4 5 6 7 8 9
10
/I
12 13
14 15
16 17
18 19
20
21
22
2324
2526
2728
2930
31
32
333
35
36
3738
3940
4142
4344
4~
4E
4748
4950
511
i
7273
4 5
6f'?
890
J L
Figure
10.
Form
for
entering
changes
into
the
source
library
DELET
OOOO~~50~o~bb2050
11_1
__
~
II
I I I I
II
I I
DELET
00001370~00001380
I U I
I
(H:"hJEJ::13
~
02;O~
1--
II II
I
III III I
II
II
I
D~EC--
F'Rt1C~(f-l!~:~:O~~:E··""
I
II
I III II
G III
II
1100000
001
00000000000100000000000000000000000000000000
000000000
123458789WI
a~M~~"n~~~un~~~n~~~~~~M~~~~H~~~~~~~O~~~~~~~~~
7273747576
n
787980
111111
111
111111111111111111111111111111111111111111111
111111111
222222222
TE5TVL
5Y51
PROCLIB
I CHG-ORCE
111
~
~
! IICHGSORCc
EXEC
PGM=IEBUPDAT,PARM=MOO
IISYSPRINT
DO
SYSOUT=A
IISY5UTl
OD
OSNAME=TEST.SOURCE.VUlUME=SER=TESTVL.
2.
II
UNIT=2311,DISP=OLD
IISYSUT2
DO
DSNAME=TEST.SOURCE,VOlUM~=SER=TESTVl,
II
UNIT=2311,DISP=OLD
1.
Invoke
the
CHGSORCE
procedure.
2.
CHGSORCE
JCL
in
SYS1.PROCLIB.
3.
Name
of
the
program
(member)
to
be
changed
-
in
this
case
B13.
MERGE
05/360
4.
Specified
deletions
of
80-character
records
and
source
code
to
be
added.
5.
Required
by
IEBUPDAT
(C28-6586)
and
the
Interpreter.
6.
This
DELET
card
is
not
required
since
both
the
old
1970
and
1980
would
be
automatically
deleted
and
replaced
by
the
new
1970
and
1980
source
statements.
Figure
11.
To
make
corrections
to
the
source
library
17
*
*
SOURCE
Ll~E
lN~tRTED
SUURCE
LiNE
DELETtD
SOURCf
LINt
DELETED
SOURCE
LINt
INSERTtD
SOURCE
LINE
INSERTED
SOURCE
LINE
DELETED
C
604
WK
t",
C\
0,
~"'
..........
~
_ "
605
fORMAT(2I3,4FI0.2)
IYK=IYR+l
1=1
GO
TO
603
C
BALANCE
DUE
IS
LESS
THAN
MUNTHLY
PAYMENT
C
606
PAYPRN=AMOUNT+PAYPRN
AMOUNT=O.
.
.1
DELET
00001970,00001980
WR1rE(S,60QlMO,IYR,PAYPRN,PAYINT,TODATE,AMOUNT
wRITE(5,602)
WRITEt6,60S)MO,IYR,PAVPRN,PAYINT,TODATE,AMOUNT
WRITE(6,6071
607
fDRMAT('O'/'O*****
LOAN
AMORTIZED
*****'/'0'/'0'/'0')
CALL
CLDCK(ITIME)
IDELTA~{lrlMES-lTIME)/76800
IF (IOELTA)
710,720,710
110
WRITE
(6,999)
IDELTA
999
FORMAT
(.
TOTAL
TIME
=
',110,'
SECONDS')
.1
DELET
00002050,00002050
720
PAuSE
99999
GO
TO
1
END
ABOVE
NAMEUH3
jfDUNU
IN
NM
DJRECTORV,TTR
IS
NUW
ALTERED
ENU
Of
J08,
./
ENDUP
READ
********
HIGHEST
CONCODt:
iN
PROGRAM
WAS
00
Figure
12.
Results
of
source
correction
A
cataloged
procedure
named
TESTASSM,
using
the
assembler
as
the
language
translator,
compiles
a
source
module
from
TEST.
SOURCE
into
an
object
module.
The
name
of
each
of
the
input
source
modules
from
the
source
library,
and
the
names
of
each
of
the
output
modules
to
be
entered
in
the
object
library
(TEST.
OBJECT),
are
specified
in
the
job
stream
for
each
language
translator
job
step.
This
procedure
and
the
required
DD
statements
specifying
input
and
output
are
illustrated
in
Figure
13.
Similar
procedures
may
be
executed
for
FOR
TRAN
and
COBOL
(see
Figures
14
and
15).
Load
Module
Creation
Object
module
output
from
language
translators
is
in
relocatable,
but
not
executable,
format.
Therefore,
before
execution,
the
object
modules
must
be
processed
by
Linkage
Editor
so
that
they
may
become
executable
load
modules.
In
addition,
adhering
to
OS/360's
basic
concept
of
modularity,
modules
that
have
been
separately
tested
may
be
combined
by
the
Linkage
Editor.
Also,
any
editing
or
overlay
structuring
of
existing
object
or
load
modules
is
done
at
this
time.
Because
in
this
application
all
object
modules
are
in
TEST.
OBJECT
and
all
load
modules
are
in
TEST.
LOAD,
each
has
access
to
the
others
in
the
TESTS
environment,
easing
conSiderably
the
difficulties
in
locating
modules.
While
the
linkage
editing
can
be
done
on
a
compile-linkage
edit-execute
basis
for
each
program
to
be
tested
within
the
TEST
environment
(see
Figure
18),
the
procedure
to
be
discussed
here
addresses
itself
to a
single
Linkage
Editor
run
during
which
multiple
load
modules
are
created,
thereby
reducing
the
number
of
times
the
processor
is
brought
into
core
storage.
Once
the
programs
to
be
tested
are
in
the
TEST.
OBJECT
library
as
object
modules,
they
will
be
link-edited
via
the
cataloged
procedure
TESTLINK, onto
the
load
module
library
(TEST.
LOAD).
This,
then,
allows
the
programmer
to
reference
these
libraries
for
any
additional
modules
he
may
require
by
use
of
the
Linkage
Editor
INCLUDE
statement.
As
illustrated
below,
the
job
stream
for
the
Linkage
Editor
run,
contains
(1)
an
EXEC
statement
calling
for
execution
of
the
cataloged
procedure
TESTLINK,
(2)
a
DD
*
statement
named
TESTLINK. SYSLIN,
which
indicates
that
the
input
specifications
to
Linkage
Editor
will
follow
in
the
job
stream,
and
(3)
a
set
of
Linkage
Editor
control
statements
specifying
the
names
of
the
input
and
output
modules
of
each
load
module
to
be
created.
/ / EXEC PROC=TESTLINK
/ / TESTLINK. SYSLIN
DD
*
19
INCLUDE OBJPDS
(object
module
name
1)
NAME
load
module
name
1 (R)
INCLUDE OBJPDS
(object
module
name
2)
NAME
load
module
name
2 (R)
9.
JOB
STREAM
IITESIASSM.SYSPUNCH
DO
DSNAME=TEST~OBJECT(A13)
DO
EXEC
PROC=TESTASSM
OS/360
ASSEMBLER
SYS1.
PROCLI
B
TES
T.
OBJECT
AI3
I
lIES
IA.SSM
IISYSUTI
//
IISYSUT2
/1
IISYSL13
/1
EXEC
..f?GM:
I E
lASM.
. C.C..71
~
DO
OSNAME=UTX,UNIT=2311,SPACE=(TRK,(SO,lO»,.
DO
DD
IISYSPRINI
DO
IISYSllB
DO
II
./
/SYSIN
/1
DD
IISYSPUNCH
DP
,II
VOlUME=SER=TESTVl
DSNAME=UTY,UNIT=2311,SPACE=(IRK,(SO,lO),+
VOLUME=SER=TESTVl
DSNAME=UTl,UNIT=2311,SPACE=(TRK,(50,lO)),~
VOlUME=SER=TESTVl
SYSOlJT=A
DSNAME=SYSl.MACLIB,UNIT:2311,DISP=OlO,
YOLUME=SER=llllll
DSNAME=TEST.SOURCE,UNIT=2311,OISP=OLD,
VOlUME=SER=TESTVl
DSNAME=TEST.OBJECT,UNIT=2311,DISP=OlO,
VOlUME=SER=TESTVl
Underlined
parameters
are
not
necessary.
Figure
13.
To
compile
or
assemble
a
source
module
from
the
source
library
into
the
object
library
20
1.
This
EXEC
statement
in
the
job
stream
invokes
the
cataloged.
procedure
TESTASSM.
2.
This
EXEC
statement
invokes
the
assembler
IETASM.
3.
Three
DD
statements
defining
the
space
and
volume
(TESTVL)
on
which
the
three
utility
data
sets
required
by
the
assembler
should
be
allocated.
4.
SYSPRINT
specifies
that
the
assembly
listing
should
be
printed.
5.
This
SYSLIB
DD
statement
specifies
that
SYS1.
MAC
LIB,
which
is
required
for
the
assembler,
resides
on
the
system
residence
volume,
111111.
6.
SYSIN
specifies
the
name
of
the
library
(TEST.
SOURCE)
containing
the
input
source
modules,
which
will
be
used
as
input
to
the
assembler
or
compiler,
and
indicates
that
this
library
resides
on
TESTVL.
7.
TESTASSM. SYSIN
specifies
the
name
of
the
source
module
(A13)
to
be
assembled
from
the
library
and
overrides
the
parameter
in
6.
8.
SYSPUNCH
specifies
that
the
library
named
(TEST.
OBJECT)
reSiding
on
TESTVL
is
the
library
in
which
the
object
modules
are
to
be
placed.
9.
TESTASSM. SYSPUNCH
specifies
that
the
name
of
the
object
module
to
be
placed
in
TEST.
OBJECT
is
A13
and
overrides
the
DSNAME
parameter
in
8.
Figure
13
(continued).
21
CC72
SYS1. PROCLI B
IITESTFORT
EXEC
PGM=IEJFAAAO,PARM~'SIZ~=50000'
IISYSPRINT
00
SYSOUT=A
IISYSUTI
00
OSNAME=UTl,UNIT=2311,SPACE=(TRK,(30,lO»,
*
II
VGlUME=SER=TESTVl
IISYSUT2
DD
DSNAME=UT2,UNIT=2311,SPACE=(TRK,(30,lO», *
II
VGlUME=StR=TESTVL
I/SYSIN
CD
U5NAME=TEST.SOURCE,UNIT=2311,DISP=OLD, *
II
VOlUME=SER=TESTVL
Job
stream
to
execute
FORTRAN
procedure
//TESTFORT.SYSLIN
DO
DSNAME=TEST.OBJECT(B13)
IITESTFORT.SYSIN
00
DSNAME=TEST.SDURCEtB13)
EXEC
PROC=IESTFORr
SPECI FY
THE
NAMES
OF
THE
INPUT
AND
OUTPUT
MODULES
FOR
FORTRAN
Figure
14.
To
create
object
modules
using
TESTS
cataloged
procedure
for
FORTRAN
SYS1.
PROCLIB
IITESTCOBL
IISYSUTI
DO
II
IlSYSUT2
CD
II
IISYSUT3
DO
II
IISYSPRINT
00
IISYSIN
CD
II
/ISYSPUNCH
DO
II
EXEC
PGM=IEPCBlOO
USNAME=UTA,UNIT=2311,SPACE=(TRK,(40,lO»,
VOLUME=SEK=TESTVL
OSNAME=UTb,UNIT=2311,SPACE={TRK,(40,lO»,
VOlUME=SER=TESTVL
DSNAME=UTC,UNIT=2311,SPACE=(TRK,(40,lO),
VClUME=SER=TESTVl
SYSOUT=A
OSNAME=TEST.SUURCE,UNIT=2311,OISP=OlO,
VULUME=SER=TESTVl
DSNAMf=TEST.OBJECT,UNIT=2311,DISP=OlD,
VOlUME=SER=TESTVL
Job
stream
to
execute
COBOL
procedure
IITESTCOBl.SYSPUNCH
00
DSNAME=lEST.OBJECT(CD13)
'/TESTCOBl.SYSIN
00
OSNAME=TEST.SOURCECCD13.
II
EXEC
PROC=TESTCUBl
SPECIFY
THE
NAMES
CC72
*
*'
*
*
Underlined
parameters
are
not
necessary
OF
THE
INPUT
AND OUTPUT
MODULES
FOR
COBOL
Figure
15.
To
create
object
modules
using
TESTS
cataloged
procedure
for
COBOL
22
To
combine
additional
object
modules
in
a
load
module,
their
names
may
be
specified
in
one
INCLUDE
statement
(see
item
1
below),
or
additional
INCLUDE
statements
may
be
inserted
(see
items2
and
3
below).
1.
INCLUDE OBJPDS
(name
1,
name
2,
name
3)
2.
INCLUDE OBJPDS
(name
2)
3.
INCLUDE OBJPDS
(name
3)
Load
modules
from
the
load
library
may
be
combined
with
other
modules
as
follows:
INCLUDE SYSLMOD
(load
module
name
or
names)
Additional
specifications
for
each
load
module
may
be
inserted
between
the
INCLUDE
and
NAME
statements.
If
more
than
one
module
is
to
comprise
the
load
module,
an
ENTRY
statement
specifying
the
entry
point
to
be
assigned
to
the
load
module
should
immediately
precede
the
NAME
statement.
Any
Linkage
Editor
control
statements
to
create
an
overlay
structure
or
to
edit
the
modules
should
be
placed
in
the
job
stream
preceding
the
NAME
statement
as
specified
in
the
Linkage
Editor
manual
(C28-6538).
The
Linkage
Editor
procedure
in
Figure
16 (TESTLINK)
produces
a
module
map
and
a
list
of
all
Linkage
Editor
control
statements.
If
additional
or
different
processing
options
are
desired,
all
parameters
required
should
be
specified
in
the
EXEC
card,
as
shown
in
Figure
16.
FOR
TRAN
and
COBOL
object
modules
require
that
SYSl.
FOR
TLIB
and
SYSI.
COBLIB
respectively
be
specified
as
the
Linkage
Editor
automatic
call
library
(SYSLIB)
(see
C28-6538).
Therefore,
they
have
been
concatenated
in
the
TESTLINK
procedure.
23
NAME
C013(R)
f::NTRY
START
INClUUt SYSlMOo(C13)
lKCLUDE
OBJPCS(D13)
NAME
BI3(R)
INCLUDE
OBJPOS(B13)
NAMf::
ASUB13(R)
INClUDf::
OBJPOS(A13,SUBAI3)
SYS1.PROCLIB
IITESTlINK
IISYSl18
II
II
II
IISYSUTl
00
II
IISYSPtUNT 00
IIOBJPDS
CD
.II
IISYSLMOo
DO
II
DO
*
TESTVL
05/360
EXEC
PGM=lINKEDIT,PARM='MAP,lIST'
DSNAME=SYS1.FORTlIB,UNIT=2311,PISP=Olo, *
vel
tlME=
SER=
111111
DO
OSNAME=SYSl.COBlIB,UNIT=2311,DISP=OLD, *
YOlUME=SER-llll11
oSNAME=LTl,UNIT=2311,SPACE=(TRK,(60,lO»,
*
VOlUME=SER=TESTVL
SYSOUT=A
DSNAME=TEST.ObJECT,UNIT=2311,OISP=OlD, *
VOlUME=SER=TESTVl
DSNAME=TEST.lOAD,UNIT=2311,OISP=OlD, *
VOlUME=SER=TESTVl
1.
The
EXEC
statement
in
the
job
stream
invokes
the
cataloged
procedure
TESTLINK. PARM.
TESTLINK='XREF,
LIST,
LET'
overrides
the
PARM
field
in
the
EXEC
statement
of
the
cataloged
procedure
and
will
cause
a
cross-reference
listing
to
be
produced
instead
of
a
memory
map
and
put
into
effect
the
processing
option
LET.
2.
The
EXEC
statement
invokes
Linkage
Editor
and
specifies
processing
optioris
MAP
and
LIST (in
this
example
they
were
overridden).
Figure
16.
To
linkage-edit
multiple
load
modules
in
one
Linkage
Editor
run
24
3.
SYSLIB
defines
the
automatic
call
library
to
Linkage
Editor
and
con-
catenates
SYS1.
FORTLIB
and
SYS1.
COBLIB.
This
allows
any
object
modules
to
be
processed,
whether
compiled
by
COBOL
or
FORTRAN.
4.
SYSUT1
specifies
that
the
Linkage
Editor's
utility
(work)
data
set
be
allocated
space
on
the
volume
TESTVL.
5.
SYSPRINT
specifies
that
the
diagnostic
messages,
memory
map,
and
a
list
of
Linkage
Editor
control
statements
processed
should
be
written
on
the
printer.
6.
This
DD
statement
indicates
that
any
reference
to
OBJPDS
in
Linkage
Editor
control
statements
will
refer
to
the
obj
ect
library
(TEST.
OBJECT),
which
resides
on
volume
TESTVL.
7.
The
SYSLMOD DD
statement
specifies
that
all
load
modules
created
by
Linkage
Editor
in
this
run
will
be
placed
in
the
load
library
(TEST.
LOAD),
which
resides
on
the
volume
TESTVL.
8.
This
specifies
that
the
primary
input
data
(SYSLIN)
follows
immediately
in
the
job
stream.
9.
This
Linkage
Editor
control
statElment
specifies
that
there
are
two
members,
A13
and
SUBA13,
in
the
library
specified
by
the
DD
statement
named
OBJPDS
that
will
be
the
input
to
this
load
module.
10.
This
control
statement
specifies
that
the
name
of
the
first
load
module
to
be
placed
in
TEST.
LOAD
is
ASUB13.
11.
This
control
statement
specifies
that
the
input
to
the
second
load
module
is
the
member
named
B13
on
TEST.
OBJECT.
12.
This
control
statement
specifies
that
the
name
of
the
second
load
module
to
be
entered
in
the
load
library
is
B13.
13.
This
statement
specifies
that
member
D13
on
TEST.
OBJECT
will
be
part
of
the
third
load
module.
14.
This
specifies
that
C13,
previously
link-edited
and
on
TEST.
LOAD
(indicated
by
the
SYSLMOD
DD
statement,
which
points
to
that
library)
is
to
be
combined
with
D13
as
input
to
the
third
load
module.
15.
This
ENTRY
statement
assigns
an
entry
point
named
START
to
the
load
module.
16.
This
NAME
statement
assigns
the
module
name
CD13
to
the
load
module
containing
C13
and
D13
on
TEST.
LOAD.
17.
/*
denotes
the
end
of
the
Linkage
Editor
input.
Figure
16
(continued).
25
Execution
of
Load
Modules
14
13
12
II
10
9
8
7
6
5
4
3
2
Because
all
of
the
load
modules
now
ready
for
execution
are
in
the
library
named
TEST.
LOAD,
the
JOBLIB
DD
statement
required
for
execution
of
each
of
the
load
modules
to
be
tested
is
the
same
(see
"Definition
of
a
Library")
.
Therefore,
the
job
stream
required
to
execute
any
load
module
will
contain
a
JOB
card,
a
JOBLIB
DD
statement
pointing
to
TEST.
LOAD,
an
EXEC
statement
where
PGM='member
name
to
be
tested',
followed
by
the
appropriate
DD
statements
for
that
particular
program.
(See
Figure
17
for
an
illustration
of
a
job
stream
to
test
programs
in
TEST.
LOAD). While
it
is
possible
to
test
multiple
load
modules
in
one
JOB,
each
as
a
separate
job
step,
all
using
only
one
JOB
LIB
statement,
it
should
be
noted
that
once
an
abnormal
end
of
one
execution
is
encountered,
the
ensuing
job
steps
will
be
bypassed.
IIOUT 00
SYSOUT=A
VOlU~E=SER=TESTVl
1~
___________
O_b
___
D_S_N_A_M_E_=_O_A_i_A_{_O_N_E_)_'U_N
__
IT_=_2_3_1_1_'_0_1_S_P_=_O_l_0_'
___
~
EXEC
PGM=F13
.C.C.72
DO
DO
0~NAME=INPGT,UNIT=(2400,~OEFER),lABEl=(,Nl)
,
TESTVL
t:XEC
PGM=C013
DATA
IIFT03FOOl
DO
PGM=B13
DATA
DO
*
DO
SYSOUT=A
813
f:Xf:C
PGM=ASUB13
VOlUME=SER~TESTVL
DO
OSNAME=TEST.lOAD,UNIT=2311,OISP=COlD.PASS),
C.C.72
C07.TESTf:XEC,MSGlEVEl=1
Joe
Figure
17.
To
test
programs
from
the
load
library
26
1.
The
JOB
statement
indicates
that
a new
job,
JOBD,
follows.
2.
JOB
LIB
indicates
that
before
searching
the
Link
library
for
the
programs
to
be
executed,
the
library
TEST.
LOAD
on
volume
TESTVL
should
be
searched.
3.
The
EXEC
statement
causes
the
program
ASUB13
to
be
executed.
4.
This
DD
statement
indicates
that
the
output
(assigned
the
ddname
OUTPUT
by
the
programmer)
of
ASUB13
is
to
go
on
the
printer.
5.
This
DD
statement
specifies
that
the
input
data
(INPUT)
for
ASUB13
follows
in
the
job
stream.
6.
The
second
job
step
indicated
by
this
EXEC
statement
causes
program
B13
to
be
read
into
core
from
TEST.
LOAD
and
executed.
7.
FT03F001
is
the
ddname
assigned
by
FORTRAN
to
the
output
data
set
for
B13,
the
printer.
8.
FT01F001
is
the
ddname
assigned
by
FORTRAN
to
the
DD
statement
that
specifies
that
B13 f S
input
data
follows
in
the
job
stream.
9.
The
third
job
step
causes
program
CD13
to
be
executed.
10.
INFILE
specifies
that
the
input
data
set
for
CD13,
INPUT,
is
on
tape.
11.
OUTFILE
specifies
that
the
results
of
CD13
are
to
be
printed.
12.
The
fourth
job
step
causes
program
F13
to
be
executed
from
TEST.
LOAD.
13.
IN,
the
ddname
defining
the
input
data
set
for
F13,
indicates
that
it
is
a
member
named
ONE
in
the
PDS
named
DATA.
14.
OUT
specifies
that
the
results
of
F13
are
to
be
printed.
Figure
17 (continued).
27
COMPILE
LINKEDIT
EXECUTE
Job
Stream
IITESTPROC
JOB
007,
INSTLTEST,
MSGLEVEL=1
II
EXEC
PROC
=@
I
I@AA.SYSINDDDSNAME=TEST.SOURCE(@)
II
®.@
DDDSNAME=TEST.OBJECT
(@)
I I
EXEC
PROC=TESTLINK,
PARM.
TESTLINK='@'
IITESTLINK.
SYSLIN DD*
INCLUDE
OBJPDS
(@)
NAME ®
(R)
1*
IITEST B
IIJOBLIB
II
II
®
II
®
1*
JOB
DD
EXEC
DD
DD
007,
INSTLEXEC,
MSGLEVEL=1
DSNAME=TEST.
LOAD,
DISP=(OLD,
PASS).
VOLUME=SER=TESTVL
PGM=@
@
Language
Procedure
Name
FORTRAN
PROC=TESTFORT
COBOL
PROC=TESTCOBL
ASSEMBLER
PROC=TESTASSM
®C
=
Member
name,
that
is,
name
of
program
to
be
compiled
© =
Compiler
Qutput
ddname
FOR
TRAN SYSLIN
(See
Figure
14)
COBOL
SYSPUNCH
ASSEMBLER
SYSPUNCH
i~
=
Optional
Linkage
Editor
parameters
=
Member
name
to
be
assigned
to
load
module.
E
may
equal
B
= DD
statements
required
to
specify
input
and
output
data
sets
for
execution
of
the
program.
Figure
18.
Generalized
compile-
Linkage-
Edit
-
Execute
procedure
28
LIBRARY MAINTENANCE
Three
types
of
maintenance
are
required
to
keep
the
three
libraries
(source,
object,
load)
to
a
manageable
size:
1.
Reducing
the
PDS's
extent
requirements
2.
Purging
unused
members
3.
Punching,
listing,
and
deleting
completed
programs
Reducing
Extent
Requirements
The
frequency
with
which
the
installation
would
wish
to
reduce
the
extents
of
a PDS
depends
on
the
volume
of
testing
being
performed
and
the
original
size
of
the
PDS.
Additional
extents
may
be
required,
as
new
members
(programs)
are
added
or
updated
in
a
library.
As
an
example,
if
a
source
program
named
MA TRIX13
were
originally
put
into
the
source
library
and
subsequently
changed
through
the
CHGSORCE
procedure,
the
original
space
for
the
MATRIX13
module
would
be
unavailable
for
use.
Probably
on
a
shift
basis
or
daily
basis,
the
installation
would
want
to
obtain
a
picture
of
the
situation.
In
order
to
do
this,
a
procedure
is
included
here
called
TESTPEEK.
This
procedure
allows
the
printing
of
the
TESTVL
Volume
Table
of
Contents,
and
the
contents
of
each
library.
Figure
20
illustrates
the
TESTPEEK
procedure~
Note
that
only
one
card
is
required
in
the
job
stream
to
obtain
the
listings,
because
the
control
statements
for
the
utility
IEHLIST
are
located
in
SYS1.
PROCLIB,
cataloged
under
the
name
CNLPEEK2.
The
control
statements
are
called
by
the
SYSIN DD
statement
in
TESTPEEK,
which,
of
course,
is
also
in
SYS1.
PROCLIB.
An
examination
of
the
output,
with
particular
attention
to
the
number
of
extents
in
each
library,
may
lead
to
the
decision
to
reorganize
the
libraries
if
they
contain
much
space
that
is
unavailable
for
use.
To
perform
this
function,
we
MOVE
(see
C28-6586)
the
TESTVL
volume
to
itself.
This
particular
utility
program
for
each
PDS
specified,
examines
the
directory
and
moves
it
to
the
new
PDS.
It
also
places
the
members
in
the
top
of
the
new PDS
as
illustrated
in
Figure
19.
To
perform
this
for
all
the
partitioned
data
sets
on
the
entire
TESTS
volume,
a
procedure
called
CLEAN
can
be
used,
which
is
illustrated
in
Figure
21.
Note
that
again
only
one
card
is
required
in
the
job
stream
to
perform
the
CLEAN
procedure,
because
both
the
CLEAN
procedure
and
the
IEHMOVE
control
statement
required
by
it
are
on
SYS1.
PROCLIB.
The
SYSIN
DD
in
C LEAN
calls
the
control
statement
which
is
cataloged
under
the
name
C LEAN1.
29
A
C
OLOPOS~
A I B
C I F }
l
1
IB
IF
---
01
RECTORY
UNAVAILABLE
SPACE
AVAILABLE
SPACE
MOVEO
pos
{
A B
C F
t------'------I
B
__________
__
--
_______
-...J
Figure
19.
Increasing
the
available
space
in
a PDS
Purging
Unused
Members
From
the
listing
received
from
the
TESTPEEK
procedure,
it
will
be
desirable
to
audit
the
usefulness
and
timeliness
of
the
va.rious
modules
(programs)
If
it
is
determined,
for
instance,
that
a
particular
module
is
no
longer
useful,
the
installation
may
run
the
utility
IEHPROGM
and
scratch
a
particular
member
from
all
libraries.
A
procedure
for
this
has
not
been
included
in
this
document,
but
it
could
be
similar
to
the
last
three
steps
in
the
SORCEDOC
procedure
(see
Figure
22).
Completed
Programs
After
a
program
has
completed
its
required
testing
and
is
performing
satisfactorily,
it
can
be
(1)
moved
to
LINKLIB
or
a
specific
JOB
LIB ;
(2)
used
to
obtain
a copy
on
tape
or
cards,
or
to
obtain
a
listing;
etc.
One of
the
most
common
joint
functions
performed
on
a
completed
program
would
be
to
(1)
list
the
source
code,
(2)
punch
a
source
deck,
and
(3)
delete
the
program
member
from
the
source,
object,
and
load
libraries.
The
SORCEDOC
procedure,
(see
Figure
22)
together
with
the
cataloged
control
statements
that
are
also
in
SYSl.
PROCLIB
(see
30
Figure
23)
will
perform
all
these
functions.
To
reduce
the
number
of
cards
required
in
the
job
stream
(only
four
are
required
to
print
and
punch
a
program
while
deleting
it
from
three
libraries),
the
SORCEDOC
procedure
uses
several
features
of
OS/360:
1.
The
ability
to
execute
a
multiple-step
procedure.
(SORCEDOC
contains
a
number
of
EXEC
statements.)
2.
The
ability
to
call
utility
control
statements
from
a
library
rather
than
placing
them
in
the
job
stream.
3.
The
ability
to
specify
that
a
sequential
data
set
is
to
be
concatenated
with
a PDS
member,
and
the
ability
to
continue
a
utility
control
statement.
(See
"Data
Set
Utilities"
in
C28-6586
for
concatenation
restrictions.
)
In
this
case
(Figure
22)
the
name
of
the
program
to
be
printed,
punched,
and
scratched
(entered
in
the
job
stream)
is
recorded
in
a
newly
created
temporary
data
set
called
TEMP
(see
point
1
in
Figure
22)
by
the
utility
IEBGENER.
This
temporary
data
set
then
supplies
the
name
of
the
program
to
the
other
utility
programs
in
SORCEDOC.
Note
that
the
SYSIN DD
statements
in
steps
2-6
of
SORCEDOC
call
a
utility
control
statement
(a
member
of
a PDS)
from
SYSIN.
PROCLIB.
The
following
DD
statement,
since
it
has
no
ddname,
concatenated
this
temporary
data
set
with
the
control
statement.
Also
note
that
each
utility
control
statement
is
prepared
with
an
=
sign
in
cc
71 (following ME
MBER
or
MEMBER
NAME)
and
a
continuation
indicator
in
cc
72.
Therefore,
each
utility
in
steps
2-6
of
SORCEDOC
looks
for
the
member
name
in
TEMP
after
reading
the
=
sign
of
the
control
statement.
(See
Figure
24
for
a
detailed
illustration
of
the
concatenation
of
the
data
sets
and
continuation
of
the
utility
control
statement.)
Further,
it
is
important
to
observe
that
to
print/punch
a
member
using
the
utility
Print/Punch
program,
the
detailed
statement
must
be
written
MEMBER
NAME = XXXX.
In
the
IEHPROGM
utility,
to
scratch
a
member,
it
must
be
specified
as
•••
,
MEMBER
= XXXX.
One
of
the
most
important
features
of
the
SORCEDOC
approach
is
that
it
protects
the
user
from
inadvertently
scratching
a
library.
If,
for
example,
a
nonexistent
member
is
speCified
or
a
member
specification
was
omitted
from
the
job
stream,
the
utility
will
not
scratch
the
library,
since
no
member
name
was
specified
for
the
MEMBER
or
MEMBER
NAME
parameter.
31
II
EXEC TESTPEEK
SYSl.
PROCL I B
CNLPEEK2
TESTPEEK
{
'/PEEK2
EXEC
PGM=IEHLISI
/ISVSPRINT
DD
SYSOUT=A
2
1/001
DO
VOLUME=SER=TESTVL,UNIT=2311,OISP=OLO
IISYSIN
DO
OSNAME=SYS1.PROCLIB(CNLPEEK2),OISP=OLD
~
llSrVTOC
lISTVTOC
3.~
l I
STPOS
VDL=2Jll=T.ESTVL
DUMP,VOl=2311=TESTVl
VGl=2311=TESTVL,OSNAME=lEST.SOURCE
VOl=2311=TESTVl,DSNAME=TEST.OBJECT
VOl=2311=TESTVl,OSNAME=TEST.lOAD
llSTPDS
llSTPDS
IITEST"
SYSTEM
CONTROL
1.
Only one
card
required
to
obtain
listings.
2.
The
procedure
TESTPEEK
located
in
SYSl.
PROCLIB.
3.
The
control
statements
for
the
utility
IEHLIST
to
list
the
desired
data.
Note
that
these
five
statements
are
located
in
SYSl.
PROCLIB
under
the
name
CNLPEEK2.
These
statements
are
called
by
the
DD
State-
ment
in
TESTPEEK.
A SYSIN
DD
*
cannot
reside
in
a
cataloged
procedure.
4.
Output
results.
Note:
In
the
TESTs
environment
it
would
be
desirable
to
have
the
SYSl.
PROCLIB
on
the
TESTVL
volume.
This
would
allow
the
procedures
for
TESTs
to
be
mounted
only
when
the
testing
is
in
process
and
would
leave
system
residence
SYSl.
PROCLIB
space
open
for
more
universal
procedures.
It
should
be
noted,
however,
that
if
the
SYSl.
PROCLIB
were
on
TESTVL
and
pOinted
to
at
IPL
time,
DD
eards
in
this
writeup
that
reference
SYSI.
PROCLIB
would.
require
T
::
additional
parameter~
that
is,
VOLUME=SER
..
TESTVL.
f
This
would
eliminate
a
catalog
search.
Figure
20.
To
list
TESTS
system
control
data
32
II
EXEC
CLEAN
I.
/IClEAN
EXEC
PGM=IEHMUVE
IISYSPRINT
DO
SYSOUT=A
IISYSUTI
DO
UNIT=2311,VOlUME=SER=111111,OISP=OlD
/1002
DO
DNIT=2311,VOlUME=SER=TESTVl,DISP=OlD
//SYSIN
DD
DSNAME=SYSl.PRGClIB(ClEANl),OlSP=OlD
VOlUME=2311=TESTVl.TO=2311=TESTVl
NOT
C.C.!
1.
One
card
required
to invoke
the
C LEAN
procedure.
2.
The
CLEAN
procedure
is
located
in
SYSl.
PROCLIB.
3.
Control
statement
for
the
utility
IEHMOVE
located
in
SYSl.
PROCLIB
under
the
name
CLEAN1.
This
single
statement
moves
TESTS
volume
to
itself.
4.
Conceptually,
the
action
that
takes
place.
The
running
time
depends
on
the
number
of
data
sets
and
members
within
the
data
sets.
The
old
data
sets
are
deleted.
Figure
21.
To
reduce
extent
requirements
on
a
volume
33
A.
1.
2.
I *
CC16
AI3
II
SORCE DOC. SYSUT 1
DO
*
SYS1.PROCLIB
TESTVL
PROGRAM
LISTING
PROGRAM
PUNCHED
1.
IISYSUI2
00 OSNAME=TEMP,UNtT=2311,VOlUME=SER=TESTVl,OISP=(NEW,KEEP), *
~
II~URCEOOC
EXEC
PGM=IEBGENER
IISYSPRINT
DO
SYSOUT=A
n
II
DeB=
(
,RECFM=F
t.
61-KS
ILE:=8Q
._,
Sf:lACE::;(TRK,
(2)
)
IISYSIN
DO
CUMMY
~
IISI
EXEC
PGM=lERPTPCH
IISYSPRINT
00
SYSOUT=A
IISYSUTI
DO
OSNAME=TEST.SOURCE,VOlUME=SER=TESTVl, *
2.(
II
UNIT=2311,0ISP=OlD
IISYSUT2
DO
SYSOUT=A
IISYSIN
00 DSNAME=SYSl.PROClIB(PRTSORC1),OISP=OlO
-II
DO
OSNAME=TEMP,VOlUME=SER=TESTVl,UNIT=2311,0ISP=OlO
IIS2-
--EXEC
PGM=IEBPTPCH
1
IISYSPRINT
DO
SVSOUT=A
IISYSUTI 00
OSNAME=TEST.SOURCE,VOLUME=SER=TESTVl,
*
3.
1/
UNIT=2311,0ISP=(lLO
I/SYSUT2
00
UNIT=OOO
~
/ISVSIN
DO
OSNAME=SYSl.PROCLIB(PCHSORCl),OlSP=Ol~v
II
00
OSNAME=TEMP~VOLUME=SER=TESTVL,UNIT=2311,0ISP=OlO
~
I/scm
EXEC
PGM=IEHPROGM
11001
DO
VOlUME=SER=TESTVl,UNIT=2311,0ISP=OLO
4 /ISYSPRINT
DO
SYSOUT=A
/ISYSIN
DO
OSNAME=SVSl.PROCLIB(SCHSORCE),DISP=OlO
____
~
_I
L~D---PSNAME=TEMP,
VOLUME=SER=TES
TVL,
UN
I
T=2311,
° I SP=OlO
~
I I
SCH2
EXEC
PGM=
I
EHPROGM
11001
00
VOlUME=SER=TESTVL,UNIT=2311,0ISP=OlD
~.
IISYSPRINT
00
SYSOUT=A
IISVSIN
DD
OSNAME=SYSl.PROClIB1SCHOBJCT),0(SP=OlO
-L/
__
~
___
OSNAME=TEMP,VOLUME=SER=TESTVL,UNIT=2311,OISP=Ol°
~
IISCH3
EXEC
PGM=IEHPROGM
11001
DO
VOLUME=SER=TESTVl,UNIT=2311,DISP=OlO
~
IISYSPRINT
DO
SVSOUT=A
/ISYSIN
DO
OSNAME=SYSl.PROClIB(SCHlOAOT),OISP=OlO
_-L1_
.
...QO_DSNAME=TEMP,
VOLUME=SER=TES
TVL,
UN
I
T=2311,
DI
SP=(
OLD,
DEL
ETE)
JCL
required
to
execute
procedure
SORCEDOC.
Brings
program
name
(in
this
example,
A13)
from
card
reader
and
stores
it
in
a
newly
created
sequential
data
set
called
TEMP.
Prints
program
-A13
(source).
3.
4,5,6.
Punches
program
-A13
(source).
Scratches
member
A13
from
TEST.
SOURCE,
TEST.
OBJECT,
TEST.
LOAD,
respectively.
Figure
22.
To
print
and
punch
a
source
program
and
delete
it
from
the
source,
object
and
load
libraries
34
r,:PROCLIB
\
I
PCH
SORCi
I~I
PRTSORCl
It
I
SCH
LOADT
I I
SCHOBJCT
I I
SCHSORCE
I I
---
6.
if
5./f
4./1
112"
PRINl-rVPGRG=PO,MAXNAME=
1
,MAXFLDS=
1
CC71
\ . TITLE ITEM=('PRINT
OF
SOURCE
PROGRAM',48)
MEMBER
NAMF.!*
~31:PUNCH
TVPO~G=POtMAXNAME=l.CDSEQ=OOOOOOOO,MAXFLDS=l
MEMBER
NAME=*
~C1
4.
SCHSGRCE
SCRATCH
DSNAME=TEST.SGURCE.VOl=2311=TESTVl,MEMBER=*
jC1
6.
SCHlOADT
SCRATCH
DSNAME=TEST.LOAU~VOL=l311=TESTVL,MEMBER=*
I
CL
5.
SCH08JCT
SCRATCH
DSNAME=TEST.OBJECT,VOL=2311=TESTVl.MEMBER=*
Figure
23.
PRINT,
PUNCH,
and
DELETE
35
SORCE DOC
SYSLPROCLIB
IISCHl
EXEC
P~M=iEHPRUGM
/1001
1:)0
VULUME=SER=TlSIVL,UNII=2311,DISP=OLD
~
I~SYSPRINT
OD
5YSUUT=A
IISYSIN
00
OSNAME=SYS1.PkGCLld(SCHSORCt),QISP=OLO
II
00
O~NAM£=TEMP,VOLUM~=SER=TESJVL,UNIT=2311,DISP=OLO_
TESTVL
OUTPUT
DOCUMENT
S¥SIEjloj
SUPPUAT
UTiLITIES
----
lEHPkUGM
CC71
CGI6 I
o.
GCHSGRCt:
-=-
~
-=
W
-=-
-SCRATCH DSNAI"lt:=TES T
SOURCE,
VOL=2Jll=TESTVl
'MEM8ER~
b.
L _ _ _ _ _
ll.l
L
_____
-..!
NCHMAL
tND uf
TASK
RtTURNEO
FKOM
SCRATCH
UTILIT¥
END
4.
See
Figures
22
and
23,
the
fourth
step.
a.
utility
control
statement
to
scratch
an
unnamed
member.
The
named
member
is
found on
TEMP,
which
is
concatenated
with
the
control
statement.
b.
The
concatenated
sequential
data
set
containing
the
member
name.
Figure
24.
To
concatenate
utility
control
statements
36
LIBRARY BACKUP -AUDIT TRAIL
Backup
Copy
It
is
apparent
that
with
such
a
system
as
described
in
this
example,
a
means
of
protection
against
unforeseen
circumstances
is
mandatory.
It
will
be
desirable
to
obtain
a
"backup"
of
the
TESTS
volume
as
well
as
a
listing
of
its
condition
at
the
time
a
copy
is
made.
The
frequency
with
which
a
backup
copy
should
be
made
will
depend
upon
the
volume
of
testing,
but
presumably
a
copy
would
be
made
at
least
once
per
shift
or
at
the
end
of
a
large
test
run
where
multiple
tests
were
performed.
The
overall
procedure
for
obtaining
a
backup
copy
of
the
TESTS
volume
is
shown
in
Figure
25.
Before
executing
the
BACKUP
procedure,
a
standard
volume
label
of
"BACKUP"
must
be
written
on a
tape
reel,
with
the
eleventh
byte
an
EBCDIC
zero.
Is.,
( J & , ,
~
II
)
Excluding
the
listing
received
from
TESTPEEK,
Figure
26
illustrates
the
document
received
when
the
BACKUP
procedure
is
executed.
37
G
/1
EXEC
TESTPEEK
II
EXEC
BACKUP
BACKUP!
PGM.=
I
EHMOVE
IIBACKUP
EXEC
I/SYSPRINT
DO
IISYSllTl
DO
IIDOI
00
11002
DO
I/SYSIN
DO
SYSOUT=A
UNIT=2311,VOLUME=SER=111111,OlSP=OlO
UNIJ=2400,VOlUME=SER=BACKUP,DISP=OlO
UNIT=2311,VOlUME=SER=TESTVl,OISP=OlD
DSNAME=SYSl.PROClIBfBACKUPl),OISP=OlO
VOlUME=2311=TEST~l,TO=2400~BACKUP
TE5TVL
05/360
1.
Invokes
the
BACKUP
procedure.
2.
JCL
for
the
BACKUP
procedure.
3.
Utility
control
statement
for
IEHMOVE.
4.
Invokes
the
TESTPEEK
procedure
(see
Figure
20).
A.
Overall
flow.
DOCUMENT
SEE
FIG.
26
Figure
25.
To
obtain
a
backup
copy
of
the
TESTS
volume
38
S't'.').J!:M
SUPPORT
UTILiTiES
----
IEHMOVE
COpy
VOLUME=2311=TESTVL,TO=2400=bACKUP
ThE
FOLLOWING
DATA
SET
IS
BEING
MUVED.
TEST.DBJECT
8
H4111
DATA
SET
TEST
.OBJE(.T
UNLOADED
BECAUSE
ACCESS
METHOD
NOT
COMPATIBLt:
A _
DATA
SET
TEST.ObJECT
HAS
BEEN
CUPtED
TO
VOLUMEtS)
. >-
BACKUP,
000
1
ThE
FOLLGWl~b
DAIA
SET
IS
BEING
MOVED.
TEST.LOAD
lEH411I
DATA
SET fEST.LOAD
UNLOADED
BECAUSE
ACCESS
METHOD
NOT
COMPATIBLE
MEMB~
ASUb13
HAS
dEEN
UNLOADED
M-
b~
TEMPNAME
HAS
BEEN
UNLOADED
A
DATA
SET
TEST.LOAD
HAS
BEEN
COPIED
TO
VOLUME(S)
. 8ACKUP,0002
Tht
FOLLOWING
DATA
SET
IS
BEING
MUVED.
TEST.SOURCE
lEH4111
DATA
SET
JEST.SOURCE
UNLOADED
BECAUSE
ACCESS
METHOD
NOT
COMPATIBLE
MtMb~
813
HAS
BEEN
UNLOADED
MEMB~
TEMP
HAS
BEEN
UNLOADED
f:\
DATA
SET
lEST.SOURCE
HAS
BEEN
COPIED
TO
VOLUMElS)
0..J
>
i3ACKUP
t
0003
A.
Note:
These
are
sequence
numbers
assigned
to
the
data
sets
on
tape.
These
numbers
will
be
used
to
retrieve
the
libraries
(see
Figure
28).
Note
also
that
all
data
sets
have
been
put
on
tape
in
an
"unloaded"
version
(C28-6586).
This
is
perfectly
all
right,
because,
when
they
are
returned
to
disk,
they
are
returned
as
they
were
originally.
Figure
26.
Document
received
from
BACKUP
procedure
39
Reinitialize
TESTS
If
the
TESTS
volume
should
be
damaged,
it
must
be
reinstated
to
its
condition
at
the
time
the
last
BACKUP
procedure
was
executed.
Since
this
reinitializing
will
be
performed
infrequently,
the
job
control
state-
ments
to
accomplish
this
are
maintained
in
a
card
deck
rather
than
in
SYS1. PROC LIB.
After
a
volume
has
been
initialized
using
DASDI
(see
Figure
6),
the
MOVE/COPY
utility
for
data
sets
will
copy
the
three
data
sets
(source,
object,
load) onto
the
disk
volume
(see
Figure
27).
If
additional
data
sets
were
on
the
original
volume,
these
could
be
retrieved
at
this
time
by
reviewing
the
listing
from
the
BACKUP
procedure
and
observing
the
sequence
number
of
the
data
set
(Figure
26).
Figure
28
shows
the
results
of
this
copy
of
data
sets
from
tape
to
TESTVL.
Note:
The
MOVE/COPY
volume
utility
will
MOVE/COPY
with
direct
~ss
as
the
FROM
device
only.
Since
FROM (in
the
MOVE/COPY
volume
utility)
may
not
refer
to
a
non-direct
access
device
such
as
tape,
we
must
use
the
MOVE/COPY
for
data
sets
rather
than
volume
in
order
to
retrieve
the
data
sets
from
tape.
40
I I I
l
.""
....
:;:·lS
I
r'~
lJD
I
II
I
.....
····lJD2
TID
II II
UNIT
-2:311,
I ....
OLUNC::::::.ER=TE:~TVL,
DISP-']LII
I I I
IU
I
II
.····.··'S··t::::F'~~H-n
.
liD
.
'.
II
DD
II
urUT=240Q,
l,l8UJME-SER-BACKUP,
II
I SP=QLD
I I I III
II
I
UNIT=2:311,VOLUME-SER-l11111,DISP=QLD
I I I
II
I
S'lSDUT=A
"
..........
~>::EC:
P!~l'l-
I
Ef-U"1DVE
I III I I
II
..........
REI~11
T J'JB
007,
I~ETu.m~:K,
!'EGLE'·lEL=l
II
I I I I I I
I I
II
I I III I I
110000010000000110100110100010100010000000000000000000000000000000000000000000]0
1234567'9ronttnM~nundM~~~~~ava~~~~~~~~».H~~U~~~~U~U~~~~~~~~~9M~uaM~M~upMnnnU~NnnNM
11111111111111111111111111111111111111111111111111111111111111111111111111111
n 1
22222222222212222222212222212212222222222222222222222222222222222222222122222212
33333331333333333313331133331333133313333333333333333333333333333333333333333313
444444444444444444444444444441444444444444444444444444444444444444444444444444~4
555151555555555555551555555555555111555555555555555555555555555555555555555555t5
66666666666166666666666611666666666661666666666666666666666666666666666666666l6B
77777777777777777177777777777771777777777777777777777777777777777777777777777777
a 8 a
8888
a 8 a 8 8 a a a a a ala a 8 a a a a a ala 8 8 a 8 a 8
al8
8 a 8 a 8 8 8 a 8 8 8 8 8 8 8 a 8 a 8 8 a 8 8 a a a 8
88
a 8 8 a a a a 8 a 8 8 8
9919191999999999999199999S19J9999999J9999999999999999999999999999999999999999999
123456789wnnnM~nunaM~u~~~~~n~~~~~~~~D~~~~U~~~~UUU~~~~~~~~g"~~U~M~M~""MnnnU~nnnn~
I IBM
SDB1]
\
-
A.
Three
COpy
utility
statements
to
retrieve
the
three
TESTS
libraries.
Notice
that
the
sequence
number
(BACKUP, 0001)
specification
corresponds
to
the
sequence
number
assigned
when BACKUP
was
executed
(see
Figure
26).
Figure
27.
To
reinitialize
the
TESTS
volume
41
SYSTEM
~UPPURT
UTILITL~S
----
IEHMOVE
U~NAME=TtST.UBJECTtTO=23tl=TESTVl.FROM=2400=(BACKUP,0Q01)
DATA
S~f
TtST.OBJECT
HAS
BEEN
COPIED
TO
VOLUME(S)
TESTVL
LOPY
OSNAMt=TEST.LUAD,TO=2311=TESTVL,fRUM=2400={BACKUP.0002)
MEMBER
ASU813
hAS
BEEN
MOVED/COPIED~
MtMBER
TEMPNAME
HAS
uEEN
MUVED,COpIED.
DATA
SET
TEST.LUAD
HAS
BEEN
COPltD
TO
VOLUME{S)
TESTVL
CUPY
DSNAME=TEST.~UURCl,TO=2311=TESTVL,FROM=2400=(BACKUPtOO03)
MEMBER
B13
HAS
BEEN
MUVED/COPIED.
MtMeER
TEMP
HAS
BEEN
MOVED/COPIED.
DATA
SET
TEST.SOURCE
HAS
BEEN
COPIED
TO
VOLUME(S)
TESJVl
1.
Note: Although
there
were
no
members
in
this
library,
the
data
set
still
exists,
and
the
original
space
that
had
been
allocated
is
still
in
effect.
Figure
28.
Document
received
from
reinitializing
the
TESTS
volume
(see
Figure
27
for
execution)
42
MULTIPLE JOB FLOW
IN
"TESTS"
Figure
29
illustrates
the
processing
of
multiple
programs
through
the
TESTS
environment.
The
purpose
of
this
figure
is
to
illustrate
the
logical
flow,
rather
than
the
actual
format
of
the
statements.
The
operations
involve
programs
Al3,
SUBAl3,
Bl3, Cl3,
and
Dl3.
Al3.
To
be
modified
and
reassembled.
SUBAl3. To
be
entered
as
a
new
source
module
and
link
edited
with
Al3
to
form
the
new
executable
module
ASUBl3.
Bl3.
Entered
as
a
new
source
module
to
be
compiled
by
COBOL and
executed.
Cl3
and
Dl3.
Both
have
individually
completed
the
test
cycle
and
are
to
be
combined
into
a
new
load
module
(CDl3)
for
execution.
Both
are
members
of
the
object
and
load
module
libraries
and
could
be
combined
in
either
format.
This
example
combines
the
object
modules.
The
processing
illustrated
in
Figure
29
has
been
separated
into
four
jobs:
43
JOBA
enters
the
source
decks
into
the
source
library
or
modifies
a
module
already
there.
JOBB
assembles
or
compiles
the
source
modules
onto
the
object
library.
JOBC
link-edits
the
object
modules
into
the
load
library.
JOBD
executes
the
programs
from
the
JOBLIB
(TEST. LOAD)
in
.
successive
job
steps.
O.
C.
B.
A.
04
II
EXEC
PGM=
BI3
03
II
EXEC
PGM=ASUBI3
02
/1
JOBLI
B
DO
TEST.
LOAD
01
II
JOBO JOB
COl3
013
OS/360
C2
/1
EXEC
PROC=TESTLINK
~--==--t;---r--l
CI
II
JOBC
JOB
B9
/1
SYSIN
DO
BI3
B8
II
EXEC
PROC=TESTCOBL
B3
II
SYSIN
DO
SUB
AI3
B2
II
EX EC PROC=TESTASSM
~---
BI I I
JOBB
JOB
/1
EXEC
PROC=NEWSORCE
SOURCE
DECK
A3
.I
CHNGE
AI3
A2
II
EXEC
PROC=CHGSORCE
AI
II
JOBA
JOB
05/360
Figure
29.
Job
flow of
multiple
programs
from
source
to
execution
44
Job
Stream
A
A
1.
/ /JOBA
JOB
A2.
/ /EXEC PROC=CHGSORCE
A3.
/ CHNGE
A13
A4.
SOURCE for
A13
AS. / /EXEC PROC=NEWSORCE
A6.
/ ADD B13
A7.
B13
A8.
. / ADD SUBA13
A9.
SUBA13
Job
Stream
B
B1.
//JOBB
JOB
B2. / /EXEC PROC=TEST
ASSM
B3. /
/SYSIN
DD SUBA13
B4. / /SYSPUNCH DD SUBA13
BS. / /EXEC PROC=TESTASSM
B6. /
/SYSIN
DD
A13
B7. / /SYSPUNCH DD
A13
B8. / /EXEC PROC=TESTCOBL
B9. /
/SYSIN
DD B13
B1D. / /SYSPUNCH DD B13
Job
Stream
C
C 1. / /JOBC
JOB
C2.
/ /EXEC PROC=TESTLINK
C3.
INCLUDE B13
C4.
NAME B13
CS.
INCLUDE
A13
C6.
INCLUDE SUBA13
C7.
NAME ASUB13 (R)
C8.
INCLUDE
(C13,
D13)
(performs
same
function
as
CS
and
C6)
C9.
NAME
CD13(R)
Job
Stream
D
D1. / /JOBD
JOB
D2.
/ /JOBLm DD
TEST.
LOAD
D3. /
/EXEC
PGM=ASUB13
(DD
statements
for ASUB13
not
shown)
D4.
l/EXEC
PGM=B13
(DD
statements
for B13
not
shown)
DS. /
/EXEC
PGM=CD13
(DD
statements
for
CD13
not
shown)
Figure
29
(continued).
Processing
Incurred
Job
statement
indicating
start
of
JOBA.
Invokes
the
cataloged
procedure
to
update
programs
already
on
the
source
library.
Indicates
the
name
of
the
program
(A13)
to
be
updated
in
the
soUrce
library.
The
source
statements
which
will
update
A13.
Invokes
the
cataloged
procedure
to
enter
new
programs
in
the
source
library.
Indicates
the
name
of
the
program
(B13)
to
be
added
to
TEST.
SOURCE
The
deck
of
source
statements
comprising
B13.
(See
A6.)
In
this
case
SUBA13 is
the
new
subroutine
to
be
added
to
TEST.
SOURCE .
Source
statements
for SUBA13.
Specifies
JOBB,
in
this
application
the
language
translation.
Invokes
the
cataloged
procedure
for
Assembler.
Represents
the
DD
statement
which
specifies
the
name
of
the
module
(SUBA13)
to
be
assembled.
Specifies
to
the
assembler
the
name
(SUBA13)
to
be
given
the
output
module
on
the
object
library.
(See
line
B2.)
Second
job
step.
(See
B3.)
In
this
case,
program
A13
which
has
just
been
modified
is
to
be
recompiled.
(See
B4.)
The
new
object
module
will
replace
the
one
named
A13
previpusly
placed
in
the
object
library.
Invokes
the
cataloged
procedure
for COBOL.
Specifies
that
the
name
of
the
COBOL
source
module
to
be
compiled
is B13.
Specifies
that
B13 is
the
name
to
be
assigned
to
the
compiled
object
module.
Processing
Incurred
Job
statement-start
of
JOBC.
In
this
case,
only
one
job
step
occurs.
Invokes
the
cataloged
procedure
to
link-edit
object
modules
into
load
modules.
Linkage
Editor
control
statement
indicating
that
the
name
of
the
first
object
module
to
be
link
edited
is B13.
Specifies
that
the
resultant
new
load
module
which
becomes
a
member
of
TEST.
LOAD is
to
be
named
B13.
Linkage
Editor
control
statement
indicating
that
the
second
object
module
to
be
link-edited
is
called
A13.
(See
CS.)
Indicates
that
SUBA13
is
to
be
link-edited
with
A13.
Specifies
that
the
resultant
load
module
consisting
of
A13
and
SUBA13
is
to
be
entered
into
TEST.
LOAD
and
ASUB13.
Linkage
Editor
control
statement
indicating
that
the
input
for
this
load
module
will
be
object
modules
C13
and
D13.
Linkage
Editor
control
statement
specifying
the
resultant
load
module
consisting
of
C13
and
D13
should
be
entered
on
TEST.
LOAD as
CD13.
Job
statement
indicating
start
of
JOBD.
JOBLm pOints
to
the
library,
TEST.
LOAD,
containing
the
programs
to
be
executed
in
this
job
step.
SpeCifies
that
the
first
job
step
will
execute
program
ASUB13,
followed
by
the
appropriate
DD
statements
defining
the
input
and
output
data
sets
for
this
program.
The
second
job
step
will
execute
program
B13.
(See
line
3.
)
The
third
job
step
will
execute
program
CD13.
(See
line
3, )
45
C20-1663-0
llrn~
®
International
Business
Machines
Corporation
Data
Processing
Division
112
East
Post
Road,
White
Plains,
N.
Y.
10601
(USA Only)
IBM
World
Trade
Corporation
821
United
Nations
Plaza,
New
York,
New
York
10017
(International)
()
N
l'
......
0'\
0'\
W
I
o
I
I
READER'S COMMENTS
IBM
System/360
Operating
System
User
Libraries
(C20-1663-0)
Your
comments
regarding
this
pubhcation
will
help
us
improve
future
editions.
Please
comment
on
the
usefulness
and
readability
of
the
publication,
suggest
additions
and
deletions,
and
list
specific
errors
and
omissions.
I USEFUlNESS AND READABILITY
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
. I
I
I
I
I
I
SUGGESTED ADDITIONS AND DELETIONS
: ERRORS AND OMISSIONS
(give
page
numbers)
I
I
I
I
I
I
I
I
I
I
I
I
I
I
Name
____________________________
__
Title
or
Position~
__________
_
Address'---
_________________
_
FOLD ON TWO LINES, STAPLE AND MAIL
No
Postage
Necessary
if
Mailed
in
U.
S.
A.
C20-1663-0
fold fold
....................................................................................................................... :
Attention: Technical Publications
fold
~rnllir
®
BUSINESS
REPLY
MAIL
NO
POSTAGE
NECESSARY
IF
MAILED
IN
THE
UNITED
STATES
POSTAGE
Will
BE
PAID
BY
...
IBM
Corporation
112
East
Post
Road
White
Plains,
N.
Y.
10601
International
Business
Machines
Corporation
Data
Processing
Division
112
East
Post
Road,
White
Plains,
N.
Y.
10601
(USA Only)
IBM
World
Trade
Corporation
821
United
Nations
Plaza,
New
York,
New
York
10017
(International)
FIRST
CLASS
PERMIT
NO.
13.59
WHITE
PLAINS,
N.Y.
fold
()
N
o
I
......
0\
0\
w
I
o

Navigation menu