BMC Mainframe: Advanced Assembler and Macro Usage
The course is developed and delivered by © RSM Technology.
This four-day course is designed to build on the skills taught in RSM's definitive Using z/OS Assembler course. It starts with a short review of the basic Assembler instructions before introducing a number of more advanced subjects, such as general addressability, 31-bits and 64-bits addressing, re-entrancy, macro usage, debugging and recovery.
The course also covers the Assembler macro language fundamentals and z/OS Control Block usage
- all essential knowledge required for maintaining and writing z/OS exits.
Major release:
BMC Mainframe Infrastructure Platform Training
Recommended Prerequisites:
Good for:
Administrators
Course Delivery:
Instructor-Led Training (ILT) | 32 hours
Course Modules
-
Addressability
- Control Sections - CSECTS
- CSECT addressability - methods and examples
- DROP directive
- CSECTS in excess of 4K
- Multiple Base Registers
- Reference by explicit address
- Reference by Dummy Section
- DSECT mapping and external storage
- MVS control block DSECTs
- Explicit reference and internal control blocks
- DSECT reference and internal control blocks
- DSECT reference and external control blocks
-
I/O and Data Management
- Sequential files:
- Fixed Length Records, Variable Length Record
- Data Control Block (DCB)
- QSAM DCB
- OPEN macro
- CLOSE macro
- Using the GET macro in Move mode
- Using the PUT macro in Move mode
- Using the GET macro in Locate mode
- Using the PUT macro in Locate mode
- Execute
- Sequential files:
-
Intermodule Communication
- Static Load Module structure and the VCON
- Static Load Module linkage - 'CALL' macro
- Secondary entry points
- Establishing addressability for secondary entry points
- External references using EXTRN
- Save Area conventions
- Standard Module linkage
- SAVE and RETURN macros
- Parameter passing standard convention
- PARM keyword on JCL EXEC statement
- Parameter passing using Explicit Interface
- CALL macro:
- Explicit Parameter Interface
- Implicit Parameter Interface
- Implicit Variable Parameter Interface
- Return code setting
- Return code testing
- Manipulating the Linkage Stack with BAKR and PR
- Status saving using the Linkage Stack
-
Extended Addressability
- Virtual Storage
- Establishing AMODE and RMODE values
- AMODE and RMODE combination rules
- Addressing mode sensitivity
- Mode setting instructions - BASSM and BSM
- Calling and returning using BASSM and BSM (Basic Mode)
- Mode switching to retrieve data from above 16 MB
- Using pointer-defined linkage
- BASSM & BSM in 64-bit mode
- Using linkage assist routines
- Using capping to assist linkage to 24-bit program
- Using capping to assist linkage to 31-bit program
-
Binder (Linkage editor)
- Binder overview
- Resolving external references
- Object and LOAD module records
- External Symbol Dictionary
- ReLocation Dictionary
- Automatic library call feature
- Weak external reference
- Binder JCL
- Binder module attribute options
- Binder module processing and output options
- Binder control statements
- Binder codes
- AMBLIST utility
-
Debugging
- Problem program dump facilities
- ABEND
- SNAP
- ABEND dump files
- ABEND dump default contents
- Summary dump
- Symptom dump
- ABEND macro
- Parameter descriptions
- SNAP macro
- SNAP SDATA options
- SNAP PDATA options
- Save Area traces
- Save Area trace and linkage stack entry
-
System Services
- Event synchronization
- WAIT macro
- POST macro
- Write to log macro (WTL)
- Write to operator macro (WTO)
- Write to operator with reply macro (WTOR)
- Delete operator message macro (DOM)
- TIME macro
- STIMER macro
- TTIMER macro
- CPUTIMER macro
-
Recovery
- Recovery flow
- ESTAE macro
- System Diagnostic Work Area (SDWA)
- Recovery routine processing
- SETRP macro
- Retry options
- Lab exercise (write an ESTAE recovery routine)
-
Advanced Instructions
- Move long (MVCL)
- Compare logical long (CLCL)
- Translate (TR)
- Translate & test (TRT)
- Edit (ED)
- Edit & mark (EDMK)
-
Macro Language Fundamentals
- Macro language introduction
- Macro language feature
- Defining a macro - basic rules
- Passing positional parameters
- Passing keyword parameters
- Parameter and keyword sub lists
- Common system variables
- Testing how a field was defined
- Lab exercise
-
Task Management
- LINK
- LOAD ATTACH
- XCTL
-
Re-entrant & Re-usable Code
- Re-entrant and re-usable code - objectives
- Re-usable code (REUS)
- Re-entrant code (RENT) - the rules
- RENT - how do you do it?
- Re-entrant code example
- List and Execute forms of macros
- Getting the re-entrant benefit
- Refreshable
- Lab exercise (make a routine re-entrant)