Skip to content
The Punctilious Programmer

Learn IBM Assemb;y Lsnhushr

woolbright_david@icloud.comwoolbright_david@icloud.com
  • IBM Mainframe Assembler
  • The Video Course
  • Course Datasets
  • Test Bank
  • The Big Blue Assembler Book
  • Visiblez Home Page
  • IBM Enterprise COBOL
  • Punctilious Publishing
  • Advanced Assembler Class
Close Menu
The Punctilious Programmer The Video Course

The Video Course

  • Class Powerpoints 1
  • Class Powerpoints 2
  • Starting Assembler 1
  • Starting Assembler 2
  • Tour the Architecture with VisibleZ
  • MVI, DCB, Open, Close, Standard Entry and Exit
  • A First Program
  • A First Program (zip)
  • Removing Assembly Errors in the First Program
  • Pack Instruction PPT
  • Pack Instruction Video
  • UNPK Instruction Video
  • UNPK Instruction PPT
  • ED Instruction Video
  • ED Instruction PPT
  • LA Instruction Video
  • LA Instruction PPT
  • L Instruction Video
  • L Instruction PPT
  • Loading Multiple Registers Video
  • Loading Multiple Regs.ppt
  • Multipleregs.ppt
  • The Using Directive ppt
  • The Using Directive mp4
  • Named USINGs mp4
  • Addressability Errors
  • ADDRESSA (assembler code)
  • Add and Subtract Packed Decimal Video
  • Add and Subtract Packed Decimal PPT
  • Debugging an S0C1
  • Debugging an S0C4 Video
  • Code for S0C4 Video
  • Debugging an S0C7 Video
  • Code for S0C7 Video
  • Debugging an S0C7 (Part 2) Video
  • Debuggin an S0C7 txt
  • MVO Video
  • MVO code
  • MVO1 code
  • MVO2 code
  • MVO3 code
  • Debugging an S0C9 Video
  • SC09 code
  • Lots of Code On One Base Register: Relative Branching
  • Branch Relative Program code
  • Using COM Control Sections (MP4)(Sample Code)
  • Introduction to VSAM for Assembler Programmers: Part 1 (MP4)(PPT1)(PPT2)
  • Introduction to VSAM for Assembler Programmers: Part 2 (MP4)(PPT)
  • Conditional Assembly and Macros (MP4)(PPT)
  • Macro Lecture 2 (MP4)
  • Macro Lecture Demo (MP4)
  • Advanced Assembler Course 

Share this:

  • Share on X (Opens in new window) X
  • Share on Facebook (Opens in new window) Facebook
  • Share on LinkedIn (Opens in new window) LinkedIn
  • Email a link to a friend (Opens in new window) Email

Like this:

Like Loading...

22 thoughts on “The Video Course”

  1. Jijo John says:
    August 17, 2014 at 3:25 pm

    Hi Dwoolnright,
    Thanks for this great help. Could you please create some tutorials for Assembler macros?

    Loading...
    Reply
    1. dwoolbright says:
      August 20, 2014 at 11:47 am

      Thank you for the comment … I’ll try to add some videos on macros soon.

      Loading...
      Reply
  2. hoovsj says:
    October 27, 2015 at 10:32 am

    Thanks very much for making these materials (and VisibleZ) available!

    Loading...
    Reply
  3. Eric Woo says:
    February 27, 2016 at 6:58 pm

    Hi, Dwoolbright; I am taking your video courses which are much better than the other ones I found from youtube. Just want to say a big THANK YOU for all these video courses!

    Eric.

    Loading...
    Reply
    1. dwoolbright says:
      February 27, 2016 at 9:49 pm

      Thanks for the kind words, Eric. Glad you are finding the videos helpful.
      David

      Loading...
      Reply
  4. Karthik says:
    December 16, 2018 at 12:58 am

    This has been of immense help, a very useful course for learning assembler programming, Thank you very much. Kind Regards Karthik

    Loading...
    Reply
  5. Narayan Chaudhary says:
    May 10, 2021 at 2:12 am

    Amazing content! The best part is you explained it in a very simple way that anyone can easily understand. THANK YOU for sharing your valuable knowledge.

    Loading...
    Reply
  6. Pingback: Introduction to VSAM for Assembler Programmers: Part 2 | The Punctilious Programmer
  7. Peeter Joot says:
    September 27, 2021 at 1:41 pm

    This is a comment with feedback on chapter-3.pdf of your book draft at https://punctiliousprogrammer.com/starting-assembler/ (which doesn’t seem to have replies enabled.)

    As an experienced mainframe developer, the column restrictions required for mainframe assembler are probably second nature to you, but they weren’t so obvious to me.

    I tried cut and pasting your sample code from the pdf and assembling it, and immediately hit a number of problems, because the cut and paste from pdf to text format resulted in all the carefully tuned spaces of your sample being lost. I’d adjusted the spacing after the cut and paste manually, but did not appreciate just how picky the assembler would be about spaces. Examples:

    1. The END ASMSKEL, ended up in column 1, which the assembler did not appreciate.
    2. Continued lines had to start in column 16 (I’d incorrectly put them in column 10.)
    3. The continuation ‘X’ characters had to be in column 72 (I think that I’d used column 71 erroneously.)
    4. The DCB parameters had to be in column 16, but some other things had to be in column 10.

    Note that I was using the Dignus assembler with the LzLabs runtime running on Linux (i.e.: not using an actual mainframe for either assembly, nor runtime), but I’d guess that the columnar issues that caused me trouble are probably common to Dignus and the mainframe assembler.

    In this intro chapter, I’d strongly suggest that you detail the column requirements for various parts of the program. If you did so, it would help out clueless newbie’s like me attempting to learn a bit of zos assember (I have a 30 year Linux and Unix history, where expectations of specific column requirements seems completely insane — provided one isn’t trying to use an abhorrent language like python.)

    ps. The email address listed on your http://csc.columbusstate.edu/woolbright/ page appears to be invalid.

    Loading...
    Reply
    1. dwoolbright says:
      September 27, 2021 at 5:07 pm

      Thanks, Peeter, for taking time to write.
      – There are formatting requirements listed on page 8 in Chapter 3. I wonder if you have an older version of that chapter?
      – Cutting and pasting the pdf is a problem. I’ll add a link to a text file that contains the sample code. I’ll also look for other chapters that need links to other code.
      The email address on my academic site is good. Just in case, it’s woolbright_david@columbusstate.edu
      David

      Loading...
      Reply
      1. Peeter Joot says:
        September 27, 2021 at 5:37 pm

        Once I got the program running, I continued reading, and sure enough found the column requirements detailed. They were along with text that said “try this yourself”, which I’d already done. The link for text download will probably be helpful for others.

        Re: your email. I thought it was a bounce error, but looking again, it appears that your server explicitly prohibits you from receiving from protonmail addresses:

        : host ASPMX.L.GOOGLE.COM[74.125.133.27]
        said: 550-5.7.1 The user or domain that you are sending to (or from) has a policy that 550-5.7.1 prohibited the mail that you sent. Please contact
        your domain 550-5.7.1 administrator for further details. For more
        information, please visit 550 5.7.1
        https://support.google.com/a/answer/172179 s186si208845wme.195 – gsmtp (in reply to end of DATA command)

        Loading...
  8. James says:
    September 20, 2022 at 12:51 am

    most of the source code link does not work

    Loading...
    Reply
    1. dwoolbright says:
      September 21, 2022 at 12:39 am

      I’m working on it. There are lots of links.

      Loading...
      Reply
  9. Jijo says:
    November 5, 2022 at 6:31 pm

    can you make a detailed video on standard entry and exit ?

    Loading...
    Reply
    1. dwoolbright says:
      November 6, 2022 at 9:24 am

      I’ll put something together soon. I’m going to finish editing first.

      Loading...
      Reply
  10. YASHWANTH GOVARDHAN PAI says:
    July 21, 2023 at 12:10 pm

    I’m currently learning mainframe assembler and your videos are really helping me get up to speed quickly. I really appreciate that you have this content openly available.

    Do you have a solution key to the practice exercise? Currently, I am going through a Class Powerpoint 1 presentation. Have a lot of programming experience in IBM Mainframe starting from COBOL, CICS, VSAM and so on and so forth. Had theoretical experience in IBM Assembly Language per se but not running programs. Yesterday, I ran a couple of programs successfully from your videos. One of the programs I ran successfully is attached below for your reference.

    May I request you to provide a skeletal code or actual code on how to display values of registers and storage (Character strings and so on) onto a spool. Would greatly appreciate your help and support.

    The email address woolbright_david@columbusstate.edu seems to be invalid and my email bounced.

    Loading...
    Reply
    1. dwoolbright says:
      July 21, 2023 at 5:18 pm

      My new email address is woolbright_david@icloud.com . I’ll get back to you soon with a better reply. Send me your code in the meanwhile.

      Loading...
      Reply
    2. dwoolbright says:
      July 22, 2023 at 8:17 am

      There are several ways to print registers or storage. Some of that is discussed later in the video course. Here is something to use for the moment. It’s the IBM macro called SNAPX. To use it, you have to include the following DCB in your program –

      SNAPXDCB DCB BLKSIZE=882,DSORG=PS,LRECL=125,MACRF=(W),RECFM=VBA, X
      DDNAME=SNAPX

      (THE X HAS TO GO IN THE CONTINUATION COLUMN 72, the DDNAME parm on the continued line starts in column 16)

      You can invoke the macro from inside your program as the program runs with something like this.

      SNAPX DCB=SNAPXDCB,ID=1,STORAGE=(A,Z),PDATA=REGS

      (SNAPX starts in the column you are using for instructions, probably column 10.)
      This will print a dump of strorage between locations A and Z (variables), and it will dump the registers.

      The JCL has to be modified to add the DDNAME from the DCB:

      //G.SNAPX DD SYSOUT=*

      Google SNAPX for details.

      Loading...
      Reply
  11. YASHWANTH GOVARDHAN PAI says:
    July 28, 2023 at 3:35 pm

    Thanks a bunch Dr for swift response. Would certainty try it out.

    Loading...
    Reply
  12. Basha says:
    May 13, 2024 at 9:17 am

    Hi David,
    In the standard entry and exit video, i was not clear on where the save area 18F has to be define in main program or sub program. if it should be on both program. how we can differentiate. could you please make some clear on this. Also i would need some lecture or discussion about full word boundary and half word boundary. could you please do some favour.

    Loading...
    Reply
    1. dwoolbright says:
      May 29, 2024 at 11:49 pm

      Every program you write should have a Save area. When you call a subroutine, the subroutine is responsible for saving the contents of the registers in the calling program’s save area. A fullword boundary is an address that is evenly divisible by 4, so 0, 4, 8, 12, … A halfword boundary is an address that is evenly divisible by 2, so 0, 2, 4, 6, 8, …

      Loading...
      Reply
      1. dwoolbright says:
        July 2, 2024 at 11:03 pm

        Every program, main and sub, has a save area. You can define it anywhere in the program that has addressability.

        Loading...

Leave a Reply to dwoolbrightCancel reply

Calendar

April 2026
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
27282930  
« Mar    

Categories

  • Fans of IBM z
  • IBM Champion
  • IBM DB2
  • IBM Enterprise Cobol
  • IBM Mainframe Assembler
  • My Books
  • VSAM

Search

Meta

  • Log in

Advance Training Academy WordPress Theme By Themeshopy

Go to mobile version
%d