z/os v1r6.0 language environment programming guideoberhtom/mainframe/redbooks/le_pg.pdf · z/os...
TRANSCRIPT
-
z/OS
Language
Environment
Programming
Guide
SA22-7561-05
���
-
z/OS
Language
Environment
Programming
Guide
SA22-7561-05
���
-
Note
Before
using
this
information
and
the
product
it
supports,
be
sure
to
read
the
general
information
under
“Notices”
on
page
631.
Sixth
Edition,
September
2004
This
is
a
major
revision
of
SA22-7561-04.
This
edition
applies
to
Language
Environment
in
z/OS
Version
1,
Release
6
(5694-A01),
to
z/OS.e™
Version
1,
Release
6(5655-G52),
and
to
all
subsequent
releases
and
modifications
until
otherwise
indicated
in
new
editions.
IBM
welcomes
your
comments.
A
form
for
readers’
comments
may
be
provided
at
the
back
of
this
document,
or
you
may
address
your
comments
to
the
following
address:
International
Business
Machines
Corporation
Department
55JA,
Mail
Station
P384
2455
South
Road
Poughkeepsie,
NY
12601-5400
United
States
of
America
FAX
(United
States
&
Canada):
1+845+432-9405
FAX
(Other
Countries):
Your
International
Access
Code
+1+845+432-9405
IBMLink™
(United
States
customers
only):
IBMUSM10(MHVRCFS)
Internet
e-mail:
World
Wide
Web:
http://www.ibm.com/servers/eserver/zseries/zos/webqs.html
If
you
would
like
a
reply,
be
sure
to
include
your
name,
address,
telephone
number,
or
FAX
number.
Make
sure
to
include
the
following
in
your
comment
or
note:
v
Title
and
order
number
of
this
document
v
Page
number
or
topic
related
to
your
comment
When
you
send
information
to
IBM,
you
grant
IBM
a
nonexclusive
right
to
use
or
distribute
the
information
in
any
way
it
believes
appropriate
without
incurring
any
obligation
to
you.
©
Copyright
International
Business
Machines
Corporation
1995,
2004.
All
rights
reserved.
US
Government
Users
Restricted
Rights
–
Use,
duplication
or
disclosure
restricted
by
GSA
ADP
Schedule
Contract
with
IBM
Corp.
http://www.ibm.com/servers/eserver/zseries/zos/webqs.html
-
Contents
Figures
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xv
Tables
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xix
About
this
document
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxi
Using
your
documentation
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxii
How
to
read
syntax
diagrams
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxiii
Symbols
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxiii
Syntax
items
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxiii
Syntax
examples
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxiv
This
Programming
Guide
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxv
Determining
if
a
publication
is
current
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxvi
Where
to
find
more
information
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxvi
Accessing
z/OS
licensed
documents
on
the
Internet
.
.
.
.
.
.
.
.
.
. xxvi
Using
LookAt
to
look
up
message
explanations
.
.
.
.
.
.
.
.
.
.
. xxvii
Information
updates
on
the
web
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxvii
Summary
of
changes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxix
Part
1.
Creating
Applications
with
Language
Environment
.
.
.
.
.
.
.
.
.
.
.
. 1
Chapter
1.
Introduction
to
Language
Environment
.
.
.
.
.
.
.
.
.
.
. 3
Components
of
Language
Environment
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 3
Common
Run-Time
Environment
of
Language
Environment
.
.
.
.
.
.
.
.
. 4
Chapter
2.
Preparing
to
Link-Edit
and
Run
under
Language
Environment
7
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 7
Planning
to
Link-Edit
and
Run
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 8
Link-Editing
Single-Language
Applications
.
.
.
.
.
.
.
.
.
.
.
.
.
. 9
Link-Editing
ILC
Applications
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 10
Downward
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 10
Checking
Which
Run-Time
Options
Are
in
Effect
.
.
.
.
.
.
.
.
.
.
.
. 13
HLL
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 13
C/C++
AMODE/RMODE
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 14
COBOL
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 14
Replacing
COBOL
Library
Routines
in
a
COBOL
Load
Module
.
.
.
.
.
. 14
Using
Language
Environment
Resident
Routines
for
Callable
Services
.
.
. 14
Fortran
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 15
Replacing
Fortran
Run-Time
Library
Modules
in
a
Fortran
Executable
Program
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 15
Using
the
Fortran
Library
Module
Replacement
Tool
.
.
.
.
.
.
.
.
.
. 16
Resolving
Static
Common
Block
Name
Conflicts
.
.
.
.
.
.
.
.
.
.
. 16
Resolving
Library
Module
Name
Conflicts
between
Fortran
and
C
.
.
.
.
. 17
PL/I
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 24
Link-editing
PL/I
Subroutines
for
Later
Use
.
.
.
.
.
.
.
.
.
.
.
.
. 24
Replacing
PL/I
Library
Routines
in
an
OS
PL/I
Executable
Program
.
.
.
. 25
Link-Editing
Fetchable
Executable
Programs
.
.
.
.
.
.
.
.
.
.
.
.
. 25
PL/I
Link-Time
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 26
Fetching
Modules
with
Different
AMODEs
.
.
.
.
.
.
.
.
.
.
.
.
.
. 26
Chapter
3.
Using
Extra
Performance
Linkage
(XPLINK)
.
.
.
.
.
.
.
.
. 29
What
is
XPLINK?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 29
Objectives
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 29
©
Copyright
IBM
Corp.
1995,
2004
iii
||
-
Support
for
XPLINK
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 30
XPLINK
Concepts
and
terms
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 30
The
XPLINK
stack
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 31
When
XPLINK
should
be
used
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 36
When
XPLINK
should
not
be
used
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 36
How
is
XPLINK
enabled?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 37
XPLINK
Compiler
option
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 37
XPLINK
Run-Time
Option
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 37
Building
and
running
an
XPLINK
application
.
.
.
.
.
.
.
.
.
.
.
.
.
. 38
Other
considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 39
XPLINK
/
non-XPLINK
compatibility
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 39
XPLINK
Restrictions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 40
Chapter
4.
Building
and
Using
Dynamic
Link
Libraries
(DLLs)
.
.
.
.
.
. 43
Support
for
DLLs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 43
DLL
Concepts
and
Terms
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 44
Loading
a
DLL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 45
Loading
a
DLL
Implicitly
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 45
Loading
a
DLL
Explicitly
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 45
Managing
the
Use
of
DLLs
When
Running
DLL
Applications
.
.
.
.
.
.
.
. 52
Loading
DLLs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 52
Sharing
DLLs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 54
Freeing
DLLs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 54
Creating
a
DLL
or
a
DLL
Application
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 54
Building
a
Simple
DLL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 55
Writing
DLL
Code
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 55
Compiling
Your
DLL
Code
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 58
Binding
Your
DLL
Code
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 59
Building
a
Simple
DLL
Application
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 60
Creating
and
Using
DLLs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 63
DLL
Restrictions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 64
Improving
Performance
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 66
Building
Complex
DLLs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 66
Chapter
5.
Link-Editing,
Loading,
and
Running
under
Batch
.
.
.
.
.
.
. 69
Basic
Link-Editing
and
Running
under
Batch
.
.
.
.
.
.
.
.
.
.
.
.
.
. 69
Accepting
the
Default
Run-Time
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
. 69
Overriding
the
Default
Run-Time
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
. 70
Specifying
Run-Time
Options
in
the
EXEC
Statement
.
.
.
.
.
.
.
.
.
. 70
Providing
Link-Edit
Input
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 71
Writing
JCL
for
the
Link-Edit
Process
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 72
Binder
Control
Statements
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 76
Link-Edit
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 77
Loading
Your
Application
Using
the
Loader
.
.
.
.
.
.
.
.
.
.
.
.
.
. 78
Writing
JCL
for
the
Loader
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 79
Invoking
the
Loader
with
the
EXEC
Statement
.
.
.
.
.
.
.
.
.
.
.
. 79
Using
the
PARM
Parameter
for
Loader
Options
.
.
.
.
.
.
.
.
.
.
.
. 79
Requesting
Loader
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 79
Passing
Parameters
through
the
Loader
.
.
.
.
.
.
.
.
.
.
.
.
.
. 79
Using
DD
Statements
for
the
Standard
Loader
Data
Sets
.
.
.
.
.
.
.
. 80
Running
an
Application
under
Batch
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 81
Program
Library
Definition
and
Search
Order
.
.
.
.
.
.
.
.
.
.
.
.
. 81
Specifying
Run-Time
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 82
Chapter
6.
Creating
and
executing
programs
under
TSO/E
.
.
.
.
.
.
. 83
Basic
link-editing
and
running
under
TSO/E
.
.
.
.
.
.
.
.
.
.
.
.
.
. 83
iv
z/OS
V1R6.0
Language
Environment
Programming
Guide
-
Accepting
the
default
run-time
options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 83
Overriding
the
default
run-time
options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 83
Link-editing
and
running
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 84
Link-editing
your
application
using
the
LINK
command
.
.
.
.
.
.
.
.
.
. 84
Using
CMOD
CLIST
to
invoke
the
TSO/E
LINK
command
.
.
.
.
.
.
.
.
. 85
Using
the
CALL
command
to
run
your
application
.
.
.
.
.
.
.
.
.
.
.
. 87
TSO/E
parameter
list
format
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 88
Loading
and
running
using
the
LOADGO
command
.
.
.
.
.
.
.
.
.
.
. 88
Allocating
data
sets
under
TSO/E
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 89
Example
of
using
LOADGO
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 89
Link-edit
and
loader
options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 89
Using
the
iconv
utility
and
ICONV
CLIST
for
C/C++
.
.
.
.
.
.
.
.
.
.
. 90
Using
the
genxlt
utility
and
GENXLT
CLIST
for
C/C++
.
.
.
.
.
.
.
.
.
. 91
Running
your
application
under
TSO/E
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 91
Chapter
7.
Creating
and
Executing
Programs
using
z/OS
UNIX
System
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 93
Basic
Link-Editing
and
Running
C/C++
Applications
under
z/OS
UNIX
.
.
.
. 93
Invoking
a
Shell
from
TSO/E
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 94
Using
the
z/OS
UNIX
c89
Utility
to
Link-Edit
and
Create
Executable
Files
.
.
. 94
Running
z/OS
UNIX
C/C++
Application
Programs
.
.
.
.
.
.
.
.
.
.
.
. 94
z/OS
UNIX
Application
Program
Environments
.
.
.
.
.
.
.
.
.
.
.
. 95
Placing
an
MVS
Application
Executable
Program
in
the
File
System
.
.
.
. 95
Restriction
on
Using
24-Bit
AMODE
Programs
.
.
.
.
.
.
.
.
.
.
.
. 95
Running
an
MVS
Executable
Program
from
a
z/OS
UNIX
Shell
.
.
.
.
.
. 95
Running
POSIX-enabled
Programs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 96
Running
COBOL
Programs
under
z/OS
UNIX
.
.
.
.
.
.
.
.
.
.
.
.
. 98
Basic
Link-Editing
and
Running
PL/I
Routines
under
z/OS
UNIX
with
POSIX(ON)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 99
Basic
Link-Editing
and
Running
PL/I
MTF
Applications
under
z/OS
UNIX
100
Chapter
8.
Using
IBM-Supplied
Cataloged
Procedures
.
.
.
.
.
.
.
. 103
Invoking
Cataloged
Procedures
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 103
Step
Names
in
Cataloged
Procedures
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 103
Unit
Names
in
Cataloged
Procedures
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 104
Data
Set
Names
in
Cataloged
Procedures
.
.
.
.
.
.
.
.
.
.
.
.
. 104
IBM-Supplied
Cataloged
Procedures
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 105
CEEWG
—
Load
and
Run
a
Language
Environment-Conforming
Non-XPLINK
Program
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 107
CEEWL
—
Link
a
Language
Environment-Conforming
Non-XPLINK
Program
108
CEEWLG
—
Link
and
Run
a
Language
Environment-Conforming
Non-XPLINK
Program
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 109
CEEXR
—
Load
and
Run
a
Language
Environment-Conforming
XPLINK
Program
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 109
CEEXL
—
Link-Edit
a
Language
Environment-Conforming
XPLINK
Program
110
CEEXLR
—
Link
and
Run
a
Language
Environment-Conforming
XPLINK
Program
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 111
AFHWL
—
Link
a
Program
Written
in
Fortran
.
.
.
.
.
.
.
.
.
.
.
. 111
AFHWLG
—
Link
and
Run
a
Program
Written
in
Fortran
.
.
.
.
.
.
.
. 112
AFHWN
—
Resolving
Name
Conflicts
between
C
and
Fortran
.
.
.
.
.
. 113
Modifying
Cataloged
Procedures
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 114
Overriding
and
Adding
to
EXEC
Statements
.
.
.
.
.
.
.
.
.
.
.
.
. 114
Overriding
and
Adding
DD
Statements
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 114
Overriding
Generic
Link-Edit
Procedures
for
Constructed
Reentrant
Programs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 115
Contents
v
-
Chapter
9.
Using
Run-Time
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 117
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 117
Specifying
Run-Time
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 117
Order
of
Precedence
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 120
Specifying
Suboptions
in
Run-Time
Options
.
.
.
.
.
.
.
.
.
.
.
.
. 121
Specifying
Run-Time
Options
and
Program
Arguments
.
.
.
.
.
.
.
.
. 121
Using
_CEE_RUNOPTS
to
Specify
Run-Time
Options
.
.
.
.
.
.
.
.
. 122
C
and
C++
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
. 122
COBOL
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 122
Fortran
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 123
PL/I
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 123
IMS
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 124
CEEXOPT
Invocation
Syntax
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 124
Part
2.
Preparing
an
Application
to
Run
with
Language
Environment
.
.
.
.
. 129
Chapter
10.
Using
Language
Environment
Parameter
List
Formats
.
.
.
. 131
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 131
Argument
Lists
and
Parameter
Lists
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 132
Passing
Arguments
between
Routines
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 132
Preparing
Your
Main
Routine
to
Receive
Parameters
.
.
.
.
.
.
.
.
.
. 134
PL/I
Argument
Passing
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 138
Chapter
11.
Making
Your
Application
Reentrant
.
.
.
.
.
.
.
.
.
.
. 139
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 139
Making
Your
C/C++
Program
Reentrant
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 139
Natural
Reentrancy
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 139
Constructed
Reentrancy
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 139
Generating
a
Reentrant
Program
Executable
for
C
or
C++
.
.
.
.
.
.
. 140
Making
Your
COBOL
Program
Reentrant
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 140
Making
Your
Fortran
Program
Reentrant
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 140
Making
Your
PL/I
Program
Reentrant
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 141
Installing
a
Reentrant
Load
Module
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 141
Part
3.
Language
Environment
Concepts,
Services,
and
Models
.
.
.
.
.
.
.
. 143
Chapter
12.
Initialization
and
termination
under
Language
Environment
145
Understanding
the
basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 145
Language
Environment
Initialization
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 146
What
Happens
During
Initialization
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 147
Language
Environment
Termination
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 148
What
causes
termination
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 148
What
happens
during
termination
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 149
Managing
return
codes
in
Language
Environment
.
.
.
.
.
.
.
.
.
.
. 151
How
the
Language
Environment
enclave
return
code
is
calculated
.
.
.
. 151
Setting
and
altering
user
return
codes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 152
Termination
behavior
for
unhandled
conditions
.
.
.
.
.
.
.
.
.
.
.
.
. 154
Determining
the
abend
code
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 155
Chapter
13.
Program
Management
Model
.
.
.
.
.
.
.
.
.
.
.
.
.
. 159
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 159
Language
Environment
Program
Management
Model
Terminology
.
.
.
. 159
Processes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 161
Enclaves
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 162
Threads
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 163
vi
z/OS
V1R6.0
Language
Environment
Programming
Guide
-
The
Full
Language
Environment
Program
Management
Model
.
.
.
.
.
.
. 163
Mapping
the
POSIX
Program
Management
Model
to
the
Language
Environment
Program
Management
Model
.
.
.
.
.
.
.
.
.
.
.
.
. 164
Key
POSIX
Program
Entities
and
Language
Environment
Counterparts
164
Scope
of
POSIX
Semantics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 165
Chapter
14.
Stack
and
heap
storage
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 167
Understanding
the
basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 167
Stack
storage
overview
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 169
Tuning
stack
storage
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 170
COBOL
storage
considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 170
PL/I
Storage
considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 170
Heap
storage
overview
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 171
Using
HEAPPOOLS
to
improve
performance
.
.
.
.
.
.
.
.
.
.
.
. 173
Heap
IDs
recognized
by
the
Language
Environment
heap
manager
.
.
.
. 174
AMODE
considerations
for
heap
storage
.
.
.
.
.
.
.
.
.
.
.
.
.
. 174
Tuning
heap
storage
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 174
Storage
performance
considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 175
Dynamic
storage
services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 175
Examples
of
callable
storage
services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 176
C
example
of
building
a
linked
list
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 176
COBOL
example
of
building
a
linked
list
.
.
.
.
.
.
.
.
.
.
.
.
.
. 178
PL/I
Example
of
building
a
linked
list
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 181
C
example
of
storage
management
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 183
COBOL
example
of
storage
management
.
.
.
.
.
.
.
.
.
.
.
.
. 186
PL/I
example
of
storage
management
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 188
User-created
heap
storage
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 190
Alternative
Vendor
Heap
Manager
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 190
Using
_CEE_HEAP_MANAGER
to
invoke
the
alternative
Vendor
Heap
Manager
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 191
Chapter
15.
Language
Environment
Condition
Handling
Introduction
193
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 193
The
Stack
Frame
Model
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 196
Handle
Cursor
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 196
Resume
Cursor
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 196
What
Is
a
Condition
in
Language
Environment?
.
.
.
.
.
.
.
.
.
.
.
. 197
Steps
in
Condition
Handling
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 197
Enablement
Step
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 198
Condition
Step
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 200
Termination
Imminent
Step
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 202
Invoking
Condition
Handlers
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 205
Responses
to
Conditions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 206
Condition
Handling
Scenarios
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 207
Scenario
1:
Simple
Condition
Handling
.
.
.
.
.
.
.
.
.
.
.
.
.
. 208
Scenario
2:
User-Written
Condition
Handler
Present
for
T_I_U
.
.
.
.
.
. 209
Scenario
3:
Condition
Handler
Present
for
Divide-by-Zero
.
.
.
.
.
.
.
. 210
Chapter
16.
Language
Environment
and
HLL
Condition
Handling
Interactions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 213
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 213
C
Condition
Handling
Semantics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 213
Comparison
of
C-Language
Environment
Terminology
.
.
.
.
.
.
.
.
. 214
Controlling
Condition
Handling
in
C
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 215
C
Condition
Handling
Actions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 216
C
Signal
Representation
of
S/370
Exceptions
.
.
.
.
.
.
.
.
.
.
.
. 220
Contents
vii
-
C++
Condition
Handling
Semantics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 221
COBOL
Condition
Handling
Semantics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 221
COBOL
Condition
Handling
Examples
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 222
Resuming
Execution
after
an
IGZ
Condition
Occurs
.
.
.
.
.
.
.
.
.
. 225
Resuming
Execution
after
a
COBOL
STOP
RUN
Statement
.
.
.
.
.
.
. 225
Reentering
COBOL
Programs
after
Stack
Frame
Collapse
.
.
.
.
.
.
. 226
Handling
Fixed-Point
and
Decimal
Overflow
Conditions
.
.
.
.
.
.
.
. 226
Fortran
Condition
Handling
Semantics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 226
Arithmetic
Program
Interruptions
from
Vector
Instructions
.
.
.
.
.
.
.
. 226
Restrictions
on
Using
Vector
Instructions
in
User-Written
Condition
Handlers
227
PL/I
Condition
Handling
Semantics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 228
PL/I
Condition
Handling
Actions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 228
Promoting
Conditions
to
the
PL/I
ERROR
Condition
.
.
.
.
.
.
.
.
.
. 229
Mapping
Non-PL/I
Conditions
to
PL/I
Conditions
.
.
.
.
.
.
.
.
.
.
. 229
Additional
PL/I
Condition
Handling
Considerations
.
.
.
.
.
.
.
.
.
. 230
PL/I
Condition
Handling
Example
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 230
Language
Environment
and
POSIX
Signal
Handling
Interactions
.
.
.
.
.
. 233
Synchronous
POSIX
Signal
and
Language
Environment
Condition
Handling
Interactions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 233
Chapter
17.
Coding
a
user-written
condition
handler
.
.
.
.
.
.
.
.
. 237
Understanding
the
basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 237
PL/I
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 237
Types
of
conditions
you
can
handle
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 238
User-written
condition
handler
interface
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 238
Registering
user-written
condition
handlers
using
USRHDLR
.
.
.
.
.
.
. 240
Nested
conditions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 241
Nested
conditions
in
applications
containing
a
COBOL
program
.
.
.
.
. 242
Using
Language
Environment
condition
handling
with
nested
COBOL
programs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 242
Examples
with
a
registered
user-written
condition
handler
.
.
.
.
.
.
.
. 243
Handling
a
divide-by-zero
condition
in
C,
C++,
COBOL,
or
PL/I
.
.
.
.
. 243
Handling
an
out-of-storage
condition
in
C,
C++,
COBOL,
or
PL/I
.
.
.
.
. 255
Signaling
and
handling
a
condition
in
a
C/C++
routine
.
.
.
.
.
.
.
.
. 269
Handling
a
divide-by-zero
condition
in
a
COBOL
program
.
.
.
.
.
.
.
. 272
Handling
a
program
check
in
an
assembler
routine
.
.
.
.
.
.
.
.
.
. 277
Chapter
18.
Using
Condition
Tokens
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 285
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 285
The
Effect
of
Coding
the
fc
Parameter
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 286
Testing
a
Condition
Token
for
Success
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 286
Testing
Condition
Tokens
for
Equivalence
.
.
.
.
.
.
.
.
.
.
.
.
.
. 287
Testing
Condition
Tokens
for
Equality
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 287
Effects
of
Omitting
the
fc
Parameter
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 287
Understanding
the
Structure
of
the
Condition
Token
.
.
.
.
.
.
.
.
.
.
. 288
Using
Symbolic
Feedback
Codes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 289
Locating
Symbolic
Feedback
Codes
for
Conditions
.
.
.
.
.
.
.
.
.
. 289
Including
Symbolic
Feedback
Code
Files
.
.
.
.
.
.
.
.
.
.
.
.
.
. 290
Examples
Using
Symbolic
Feedback
Codes
.
.
.
.
.
.
.
.
.
.
.
.
. 291
Condition
Tokens
for
C
Signals
under
C
and
C++
.
.
.
.
.
.
.
.
.
.
.
. 296
q_data
Structure
for
Abends
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 297
Usage
Notes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 298
Example
Illustrating
Retrieval
of
q_data
.
.
.
.
.
.
.
.
.
.
.
.
.
. 298
q_data
Structure
for
Arithmetic
Program
Interruptions
.
.
.
.
.
.
.
.
.
. 301
Usage
Notes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 303
q_data
Structure
for
Square-Root
Exception
.
.
.
.
.
.
.
.
.
.
.
.
.
. 304
viii
z/OS
V1R6.0
Language
Environment
Programming
Guide
-
q_data
Structure
for
Math
and
Bit-Manipulation
Conditions
.
.
.
.
.
.
.
. 304
Usage
Notes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 308
Format
of
q_data
Descriptors
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 308
Chapter
19.
Using
and
Handling
Messages
.
.
.
.
.
.
.
.
.
.
.
.
. 311
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 311
Creating
Messages
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 311
Creating
a
Message
Source
File
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 312
Using
the
CEEBLDTX
Utility
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 315
Files
Created
by
CEEBLDTX
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 315
Creating
a
Message
Module
Table
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 318
Assigning
Values
to
Message
Inserts
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 319
Interpreting
Run-Time
Messages
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 320
Specifying
National
Language
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 322
Run-Time
Messages
with
POSIX
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 322
Handling
Message
Output
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 323
Using
Language
Environment
MSGFILE
.
.
.
.
.
.
.
.
.
.
.
.
.
. 324
Using
MSGFILE
under
z/OS
UNIX
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 324
Using
C
or
C++
I/O
Functions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 325
Using
COBOL
I/O
Statements
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 327
Using
Fortran
I/O
Statements
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 327
Using
PL/I
I/O
Statements
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 329
MSGFILE
Considerations
When
Using
PL/I
.
.
.
.
.
.
.
.
.
.
.
.
. 329
Examples
Using
Multiple
Message
Handling
Callable
Services
.
.
.
.
.
.
. 330
C/C++
Example
Calls
to
CEEMOUT,
CEENCOD,
CEEMGET,
CEEDCOD,
and
CEEMSG
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 331
COBOL
Example
Calls
to
CEEMOUT,
CEENCOD,
CEEMGET,
CEEDCOD,
and
CEEMSG
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 333
PL/I
Example
Calls
to
CEEMOUT,
CEENCOD,
CEEMGET,
CEEDCOD,
and
CEEMSG
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 336
Chapter
20.
Using
Date
and
Time
Services
.
.
.
.
.
.
.
.
.
.
.
.
. 339
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 339
Working
with
Date
and
Time
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 340
Date
Limits
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 340
Picture
Character
Terms
and
Picture
Strings
.
.
.
.
.
.
.
.
.
.
.
. 341
Notation
for
Eras
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 341
Performing
Calculations
on
Date
and
Time
Values
.
.
.
.
.
.
.
.
.
.
. 342
Century
Window
Routines
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 342
National
Language
Support
for
Date
and
Time
Services
.
.
.
.
.
.
.
.
. 343
Examples
Using
Date
and
Time
Callable
Services
.
.
.
.
.
.
.
.
.
.
. 343
Examples
Illustrating
Calls
to
CEEQCEN
and
CEESCEN
.
.
.
.
.
.
.
. 344
Examples
Illustrating
Calls
to
CEESECS
.
.
.
.
.
.
.
.
.
.
.
.
.
. 347
Examples
Illustrating
Calls
to
CEESECS
and
CEEDATM
.
.
.
.
.
.
.
. 352
Examples
Illustrating
Calls
to
CEESECS,
CEESECI,
CEEISEC,
and
CEEDATM
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 358
Examples
Illustrating
Calls
to
CEEDAYS,
CEEDATE,
and
CEEDYWK
.
.
. 367
Calls
to
CEECBLDY
in
COBOL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 377
Chapter
21.
National
Language
Support
.
.
.
.
.
.
.
.
.
.
.
.
.
. 379
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 379
Setting
the
National
Language
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 379
Setting
the
Country
Code
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 380
Combining
National
Language
Support
and
Date
and
Time
Services
.
.
.
.
. 380
Calls
to
CEE3CTY,
CEEFMDT,
and
CEEDATM
in
C
.
.
.
.
.
.
.
.
.
. 380
Calls
to
CEE3CTY,
CEEFMDT,
and
CEEDATM
in
COBOL
.
.
.
.
.
.
. 382
Contents
ix
-
Example
Using
CEE3CTY,
CEEFMDT,
and
CEEDATM
in
PL/I
.
.
.
.
.
. 386
Chapter
22.
Locale
Callable
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 389
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 389
Developing
Internationalized
Applications
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 390
Examples
of
Using
Locale
Callable
Services
.
.
.
.
.
.
.
.
.
.
.
.
. 390
Example
Calls
to
CEEFMON
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 390
Example
Calls
to
CEEFTDS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 393
Example
Calls
to
CEELCNV
and
CEESETL
.
.
.
.
.
.
.
.
.
.
.
.
. 397
Example
Calls
to
CEEQDTC
and
CEESETL
.
.
.
.
.
.
.
.
.
.
.
. 402
Example
Calls
to
CEESCOL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 407
Example
Calls
to
CEESETL
and
CEEQRYL
.
.
.
.
.
.
.
.
.
.
.
.
. 410
Example
Calls
to
CEEQRYL
and
CEESTXF
.
.
.
.
.
.
.
.
.
.
.
.
. 413
Chapter
23.
General
Callable
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 419
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 419
CEE3DMP
Callable
Service
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 419
CEE3USR
Callable
Service
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 420
CEEGPID
Callable
Service
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 420
CEERAN0
Callable
Service
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 420
CEETEST
Callable
Service
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 420
Using
Some
Basic
Callable
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 420
Chapter
24.
Math
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 425
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 425
Call
Interface
to
Math
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 426
Parameter
Types:
parm1
Type
and
parm2
Type
.
.
.
.
.
.
.
.
.
.
. 427
Examples
of
Calling
Math
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 427
Calling
CEESSLOG
in
C
and
C++
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 428
Calling
CEESSLOG
in
COBOL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 429
Calling
CEESSLOG
in
PL/I
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 430
Part
4.
Using
Interfaces
to
Other
Products
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 431
Chapter
25.
Running
Applications
under
CICS
.
.
.
.
.
.
.
.
.
.
.
. 433
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 433
CICS
Region
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 433
CICS
Transaction
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 433
CICS
Run
Unit
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 434
Running
Language
Environment
Applications
under
CICS
.
.
.
.
.
.
. 434
Developing
an
Application
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 434
PL/I
Coding
Considerations
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
. 435
Link-Edit
Considerations
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 436
CICS
Processing
Program
Table
(PPT)
Considerations
.
.
.
.
.
.
.
.
. 436
Specifying
Run-Time
Options
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
. 437
Accessing
DLI
Databases
from
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 439
Using
Callable
Services
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 439
OS/VS
COBOL
Compatibility
Considerations
under
CICS
.
.
.
.
.
.
.
. 439
Using
Math
Services
in
PL/I
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
. 440
Coding
Program
Termination
in
PL/I
under
CICS
.
.
.
.
.
.
.
.
.
.
. 440
Storage
Management
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 440
CICS
Short-on-Storage
Condition
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 440
CICS
Storage
Protect
Facility
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 440
PL/I
Storage
Considerations
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
. 441
Condition
Handling
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 442
PL/I
Considerations
for
Using
the
CICS
HANDLE
ABEND
Command
.
.
. 442
x
z/OS
V1R6.0
Language
Environment
Programming
Guide
-
Effect
of
the
CICS
HANDLE
ABEND
Command
.
.
.
.
.
.
.
.
.
.
. 443
Effect
of
the
CICS
HANDLE
CONDITION
and
CICS
HANDLE
AID
.
.
.
. 443
Restrictions
on
User-Written
Condition
Handlers
under
CICS
.
.
.
.
.
. 443
CICS
Transaction
Abend
Codes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 444
Using
the
CBLPSHPOP
Run-Time
Option
under
CICS
.
.
.
.
.
.
.
.
. 444
Restrictions
on
Assembler
User
Exits
under
CICS
.
.
.
.
.
.
.
.
.
. 444
Ensuring
Transaction
Rollback
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
. 445
Run-Time
Output
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 445
Message
Handling
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 445
Dump
Services
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 446
Support
for
Calls
within
the
Same
HLL
under
CICS
.
.
.
.
.
.
.
.
.
.
. 446
C
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 446
C++
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 446
COBOL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 446
PL/I
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 447
Chapter
26.
Running
Applications
under
DB2
.
.
.
.
.
.
.
.
.
.
.
. 449
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 449
Language
Environment
Support
for
DB2
Applications
.
.
.
.
.
.
.
.
. 449
Condition
Handling
under
DB2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 449
PL/I
Consideration
for
DB2
Applications
.
.
.
.
.
.
.
.
.
.
.
.
.
. 449
Chapter
27.
Running
Applications
under
IMS
.
.
.
.
.
.
.
.
.
.
.
. 451
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 451
Using
the
Interface
between
Language
Environment
and
IMS
.
.
.
.
.
.
. 451
z/OS
C/C++
Considerations
under
IMS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 451
C++
Considerations
under
IMS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 452
PL/I
Considerations
under
IMS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 452
IMS
Communication
with
Your
Application
.
.
.
.
.
.
.
.
.
.
.
.
.
. 452
Link-Edit
Considerations
under
IMS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 453
Making
Your
IMS
Application
Reentrant
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 453
Condition
Handling
under
IMS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 453
Coordinated
Condition
Handling
under
IMS
.
.
.
.
.
.
.
.
.
.
.
.
. 453
Diagnosing
Abends
with
the
IMS
Dump
.
.
.
.
.
.
.
.
.
.
.
.
.
. 454
Part
5.
Specialized
Programming
Tasks
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 455
Chapter
28.
Using
Run-Time
User
Exits
.
.
.
.
.
.
.
.
.
.
.
.
.
. 457
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 457
User
Exits
Supported
under
Language
Environment
.
.
.
.
.
.
.
.
.
.
. 457
Using
the
Assembler
User
Exit
CEEBXITA
.
.
.
.
.
.
.
.
.
.
.
.
. 458
Using
the
HLL
Initialization
Exit
CEEBINT
.
.
.
.
.
.
.
.
.
.
.
.
. 458
PL/I
and
C
Compatibility
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 459
Using
Sample
Assembler
User
Exits
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 459
When
User
Exits
Are
Invoked
.
.
.
.
.
.
.
.
.
.
.
.
.
.