Secrets of Inter-Language Communication in z/OS - Topical Outline
Day One
Introduction to the Course
Interesting Applications
Coding Notes For Examples in the Class
Computer Exercise: Setting Up for the Labs
Defining Elementary Data Items
General Concerns
Data Types - zSeries Hardware
Data Types
Character String
Packed Decimal
Binary Integer - halfword, fullword
Floating Point - short, long, extended
Addresses
Other Data Types - Edited strings, Bit strings, Null terminated strings
Working With Null Terminated Strings
Rules for Names
Computer Exercise: Defining Elementary Items
Defining Data Aggregates
Data Aggregates - An Introduction
Data Alignment
Defining Aggregates - Assembler, COBOL, PL/I, C
Alignment - Another Perspective
Working With Halfword Prefixed Strings
Computer Exercise: Defining Aggregates
Accessing PARM data and Setting the Return Code
How the PARM field is set up
Accessing the PARM Field - Assembler, COBOL, PL/I, C
Accessing the PARM Field Using LE Services
Setting the Return Code
Computer Exercise: Getting the Parm and Setting the Return Code
Calling Subroutines Statically
Assembler
COBOL
PL/I
C
LE Services: CEEMOUT
What's Going On Here?
Computer Exercise: Static Calls
Day Two
Object Code
Modules
Module Translations
Sections
Object Modules
Object Modules: XOBJ
Generated Object Modules
Passing Arguments and Receiving Returned Values
How Arguments Are Passed - Styles and Options
How Arguments Are Passed - Assembler, COBOL, PL/I, C
How Arguments Are Passed - Lessons
Receiving Parameters and Setting Return Values
Mainlines and Subroutines
Subroutine declarations
Declaring Parameters
Parameters - Assembler, COBOL, PL/I, C
Computer Exercise: Assemble / compile, bind subroutines
The Program Binder
Compiles and Binds
Assemble / Compile and Bind Data Flow
An Example
Program Binder PARM Options
Program Binder Control Statements: ENTRY, NAME
A Load Module
Program Binder Control Statements: INCLUDE, LIBRARY, REPLACE
How The Program Binder Works
Basic Maintenance Using the Program Binder
Computer Exercise: Program Binder
and Maintenance
Alternate Entry Points
Why Have Alternate Entry Points?
Alternate Entry Points: Assembler, COBOL, PL/I, C
Alternate Entry Points - How Does It Work?
Program Binder Control Statement: ALIAS
Computer Exericse: Alternate Entry Points
Day Three
External Data
External Data - Assembler, COBOL, PL/I, C
External Data - ILC
Calling Subroutines Dynamically
Dynamic Calls - An Introduction
Dynamic Calls - Assembler, COBOL, PL/I, C
Computer Exercse: Dynamic Calls
AMODE / RMODE Issues
z/OS Addressing
Specifying AMODE and RMODE
GOFF - The Generalized Object File Format
More About the Program Binder
Load Modules vs. Program Objects
Binder versions
Binder Parms
Binder Inputs and Outputs
Multi-Tasking and Program Reusability
Multi-Tasking
Dispatching
Reusable, Reenterable, Refreshable Attributes
LPA, JPA, LLA
The Search for Modules
DLLs - Dynamic Link Libraries
DLL Concepts
Creating DLLs
Using DLLs
DLLs - Binder
DLL Applications - Finding the DLLs
DLLs - in C
Building DLLs
Building DLL Applications
C DLLs - An example
DLLs - CBA
DLLs - New services
DLLs - COBOL
COBOL DLL Examples 1, 2
COBOL and C DLLs
COBOL DLL Examples 3, 4
DLLs - PL/I
Building DLLs in PL/I
PL/I DLL Application programs
Naming issues
PL/I DLL example
Packages
Packages and DLLs together
OPTIONS(FETCHABLE)
DLLINIT compiler option
DLLs - Assembler
Assembler Language Support for DLLs - original
Assembler Support: HLASM 1.5+ and z/OS 1.6+
The CEEENTRY macro
The CEEPDDA macro
The CEEPLDA macro
The CEEPCALL macro
Assembler DLL considerations
Conclusions
Loading DLLs - Tradeoffs
Subroutine linkages - options
Computer Exercise (Optional): Creating and Using DLLs
Course information: Code: M-520; Duration: 3.5
Days: Course version: 1.x
These Materials © Copyright 2008 by Steven H.
Comstock
this page last updated: 08 February, 2008
this page copyright © 2008 by The Trainer's Friend, Inc.