Category Archives: IBM Mainframe Assembler

Videos and word documents that cover how to program in IBM mainframe assembler language.

BRC and BRCL Instruction Lessons

I’ve added lessons on two relative branch operands that have become fundamental tools for “baseless” programs:  Branch Relative on Condition and Branch Relative on Condition Long.  You can try out these instructions in VisibleZ as well.  Upload the new Codes directory for some sample object code programs, or build your own.

Along with these lessons, I cleaned up some links on the assembler page and added links to all the lessons in three formats (PDF, DOCX, HTM).

I’m working on an assembler book that will organize and combine the information you can find on the site.  I hope to complete it over the next few months.  If you have special requests for topics you would like me to include, email me your suggestions.  I’d like to know the instructions you’re using that aren’t represented here.


Filed under IBM Mainframe Assembler

New version of VisibleZ

It’s been a while since I updated the copy of VisibleZ on the server. Tonight I uploaded a fresh copy of it along with an updated Codes directory which contains more sample programs than before.

Leave a comment

Filed under IBM Mainframe Assembler

Study Assembler with Me Online

Study assembler programming with me this fall through the Enterprise Systems Education program offered by Marist College. Classes begin August 31. Follow this link for more information. Marist also offers other online enterprise courses including z/OS, Cobol, DB2, and IMS. For further information, contact:

Roberta Diggins|Marist College | 845-575-3601 |

Leave a comment

Filed under IBM Mainframe Assembler

VisualZ Has Been Updated

Here’s your chance to learn many new assembler instructions!
I just published the latest version of VisualZ which represents a significant improvement over the previous one.

New Features include:

  • Improved interface
  • Settings tab for specifying the CODES path
  • Stop points
  • Fully functional 64 bit registers
  • Many new instructions that access the 64 bit general purpose registers
  • A more extensive CODES directory containing many new sample programs
  • More detailed highlighting for registers
  • One click download for VisibleZ and CODES

You can download the latest version by clicking on the “Download VisibleZ” tab from the home page. VisibleZ is distributed as an executable Jar file. The source code is included inside the Jar if you prefer to compile it yourself.


Filed under IBM Mainframe Assembler

Enterprise COBOL Course Open Now

After a few years of keeping this private, I’ve opened the Enterprise COBOL Course link on the homepage to anyone who is interested in watching a collection of COBOL videos I created.  The collection represents a complete course for a beginning COBOL programmer.  It comes with some suggested programming assignments and an extensive set of powerpoints. While this is designed for beginners, the course includes some topics that explore the limits of what you can do with COBOL these days.  Even an experienced programmer may stumble across a number of interesting wrinkles!  Let me know what you think. The Punctilious Programmer site has a link to this course or you can bookmark this link


Filed under IBM Mainframe Assembler

Get Shifty – Shift Factors in Shifts and Rotate Instructions

There’s two distinct approaches you can take when coding shifts and rotate instructions:

1) Hardcoded Shift Factor – Here’s a typical shift and round packed instruction –


The 3 is a shift factor that represents a 3 digit left shift. It has the advantage of being easy to code, but the shift factor is fixed and can’t be programmatically altered.

2) Computed Shift Factor – This second technique is less commonly coded, so perhaps you haven’t seen an SRP coded like this:

L   R4,=F'3'

Just how does this second SRP above work? First the shift factor is loaded into register 4. The 0(R4) is in fact a base/displacement address. Like all base/displacement computations, the contents of the base register and the displacement are added to produce an effective address. But instead of using the effective address to reference a memory location, only the rightmost six bits of the address are used as a shift factor. In the case of SRP, the 6 bits are interpreted as a 2’s complement binary integer, and the shift moves left for positive integers and right for negative ones. An advantage to this technique is the shift factor can be programmatically changed, providing a flexibility that the first approach doesn’t offer.

In both cases, the shift factor is expressed as a base/displacement address. In the first case the 3 is simply a displacement and the base register was omitted, so it defaulted to 0.  The effective address was the displacement, 3. Abreviating this to six bits, left 3 as the shift factor.

There are lots of opportunities to use these techniques because there are many shift and rotate instructions (including SRP) that express their shift factors in base displacement format D(B).
These instructions include:



For each of these instructions, the base/displacement address in not used as an address at all.  In fact, only the last 6 bits of the “address” is used to represent the shift factor. Some shift factors are in plain binary while others are in 2’s complement. You’ll have to check with the Principles of Operation for the details on each instruction.

Leave a comment

Filed under IBM Mainframe Assembler

Back in Business

You should be able to see all the web pages on my academic site now, including all the relevant assembler videos.

Leave a comment

Filed under IBM Mainframe Assembler

Web Site Down Temporarily

The web site at Columbus State University that hosts my assembler material is temporarily down.  I’m working on moving all of it to a different server.  Sorry for the inconvenience.

Leave a comment

Filed under IBM Mainframe Assembler

Enterprise Training in the new year

Check out the specialized enterprise training that is available through Marist College (credit or non-credit).  I may teach the assembler course in the spring if we have enough students.  Here is the link for more information:

Leave a comment

Filed under IBM Mainframe Assembler

Institute for Data Center Professionals – Online Training

If you are looking to improve your enterprise System Z computing skills including Networking, Security, COBOL, Assembler, DB2 and IMS, check out the Institute for Data Center Professionals that is sponsored by Marist College in Poughkeepsie, NY. They have an excellent System Z online program that is designed for anyone trying to advance their technical skills. The curriculum is extensive and unique. I taught a couple of assembler courses in the program last year. The program is very hands-on and you receive lots of personal assistance. If you are interested in this year’s program, you will need to hurry, though. Classes start in September. Here’s the link:

Leave a comment

Filed under IBM Mainframe Assembler