This four-day course is designed to build on the skills taught in the 'Using z/OS Assembler' course. It starts with a short review of the basic Assembler instructions before introducing more advanced areas such as general addressability, 31 and 64 bit addressing, re-entrancy, macro usage, debugging and recovery.<br>The course also covers the Assembler macro language fundamentals and z/OS Control Block usage, essential knowledge required when maintaining and writing z/OS exits.<br><br>This course is also available for one-company, on-site presentations and for live presentation over the Internet, via the Virtual Classroom Environment service.
Read more +


Prerequisite for this course is attendance on Using z/OS Assembler course or equivalent experience. It is not mandatory but it would be helpful to have also attended the courses z/OS System Fundamentals Part 1 & z/OS System Part 2.
Read more +

Delegates will learn how to

  • use advanced addressability techniques
  • use data management macros
  • receive and pass subroutine parameters and process return codes
  • utilise the linkage stack
  • apply 31 & 64 bit addressing concepts
  • write re-entrant code
  • use the basic Assembler macro language
  • code Binder control statements
  • use MVS control blocks in exit routines
  • use supervisor services macros
  • debug dumps
  • write ESTAE routines
  • write re-entrant programs.
Read more +



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.

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.


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 synchronisation; 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 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 sublists; common system variables; testing how a field was defined; Lab exercise.

Task Management


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).

Read more +

Why choose QA

Dates & Locations

Need to know

Frequently asked questions

How can I create an account on myQA.com?

There are a number of ways to create an account. If you are a self-funder, simply select the "Create account" option on the login page.

If you have been booked onto a course by your company, you will receive a confirmation email. From this email, select "Sign into myQA" and you will be taken to the "Create account" page. Complete all of the details and select "Create account".

If you have the booking number you can also go here and select the "I have a booking number" option. Enter the booking reference and your surname. If the details match, you will be taken to the "Create account" page from where you can enter your details and confirm your account.

Find more answers to frequently asked questions in our FAQs: Bookings & Cancellations page.

How do QA’s virtual classroom courses work?

Our virtual classroom courses allow you to access award-winning classroom training, without leaving your home or office. Our learning professionals are specially trained on how to interact with remote attendees and our remote labs ensure all participants can take part in hands-on exercises wherever they are.

We use the WebEx video conferencing platform by Cisco. Before you book, check that you meet the WebEx system requirements and run a test meeting (more details in the link below) to ensure the software is compatible with your firewall settings. If it doesn’t work, try adjusting your settings or contact your IT department about permitting the website.

How do QA’s online courses work?

QA online courses, also commonly known as distance learning courses or elearning courses, take the form of interactive software designed for individual learning, but you will also have access to full support from our subject-matter experts for the duration of your course. When you book a QA online learning course you will receive immediate access to it through our e-learning platform and you can start to learn straight away, from any compatible device. Access to the online learning platform is valid for one year from the booking date.

All courses are built around case studies and presented in an engaging format, which includes storytelling elements, video, audio and humour. Every case study is supported by sample documents and a collection of Knowledge Nuggets that provide more in-depth detail on the wider processes.

When will I receive my joining instructions?

Joining instructions for QA courses are sent two weeks prior to the course start date, or immediately if the booking is confirmed within this timeframe. For course bookings made via QA but delivered by a third-party supplier, joining instructions are sent to attendees prior to the training course, but timescales vary depending on each supplier’s terms. Read more FAQs.

When will I receive my certificate?

Certificates of Achievement are issued at the end the course, either as a hard copy or via email. Read more here.

Let's talk

By submitting this form, you agree to QA processing your data in accordance with our Privacy Policy and Terms & Conditions. You can unsubscribe at any time by clicking the link in our emails or contacting us directly.