IBM MTM 2019: Part Three – Challenge #12

There’s a system problem! One of our system elements EZAFTPCU has encountered an issue! Let’s quickly get to our terminal and fix it!

System Programmer and SMP/E

IBM Master the Mainframe Part Three – Challenge #12

Retrieve z/OS module maintenance information using SMP/E panels

TIP: take note of all the names!

From the ISPF Primary Option Menu enter the primary command SM to display the SMP/E Dialog Panels. I’ll press F3 too to skip the tutorial. We don’t have time for this, our client is getting angery and my boss is pointing the 99.99% uptime agreement at me.

I’ll tab to the SMPCSI DATA SET and type ‘MVS.GLOBAL.CSI’. After that I’ll tab back to the cop command input and enter as query.

Here we go, I’ll press enter and then enter 1 as CSI Query.

Next up we know that EZAFTPCU is the ENTRY NAME and MVST is the ZONE NAME.

I’ll tab to the left of the MOD entry type and enter line command s to select it.

Now I get to see the following. I’ll try and remember the RMID and LMOD names because I need those to complete the challenge.

I’ll press F3 twice to return to the CSI Query panel. Now I need to do the same process but for different zoen names and entry types. The first one has MVST as zone name, SYSMOD as entry type and RMID, which we remember from before, as the entry type.

I get to see the following.

The SYSMOD type is PTF and maintenance happened on this element. Now let’s tap F3 twice again and query MVST as zone name, LMOD as entry type and we need to enter the LMOD name, which we remember from last time,  in the entry name field.

Now I get to see the following. We need to remember the SYSLIB name which I conveniently censored 😉

Yes I have removed a piece. I am required to.

Submit JCL to execute SMP/E utility program

I’ll create a new member SMP in my JCL data set. Inthere I’ll copy ‘zos.mtm2019.public.jcl(smp)’. Strange! I already had an SMP member in my JCL data set.

It looks like the one I need, I’ll keep it! Free stuff!

  1. Replace AAAA with the target zone name
  2. Replace BBBBBBBB with the MOD name
  3. Replace CCCCCCCC with the LMOD name
  4. Replace DDDDDDDD with the RMID or SYSMOD PTF unique number
  5. Replace EEEEEEEE with the SYSLIB system library data set identifier

Honestly, MOD name is a bit unclear to me.

What you know is the problem situation implicated a named MOD.

Nevermind, got it.

Now then, I’ll submit ; =sd ; st and the challenge should be done. Let me check my output.

Censored and done! Let’s continue!

Do you like censorship?

I personally do not. Be it the picture above or the internet.

IBM MTM 2019: Part Three – Challenge #11


Today we’re doing some more ASM. I personally don’t really like these challenges, but at least it’s nice to get in touch with the language. Last year IBM said they would work with ZOWE. Why did they cancel it?

Ah well, let’s continue.

Warning: you need to echo High level languages hide complexity of assembler instead of High level languages hide complexity of system assembler. Without the word “system”. If you want extra points you’ll need to use a non-blank continuation character on 72th of the first line. See comments for more information. Thanks Victor and Daniel!

Z Assembler Mnemonic Instructions and Macros

IBM Master the Mainframe Part Three – Challenge #11

Assembler program modification

So after reviewing the code we need to modify the member asmhello of our data set source to write another message: “High level languages hide complexity of assembler“. Hiding the solution for this challenge will be hard, but I’ll do my best to make things as clear as possible.

Take a closer look at how they define the program body. They always have a pair of MVC and PUT. This for both variables and both echos. Make a new one, I have called it CHMSG. It stands for chapter message. Pick something else please 😉

The echos in the references part always start with the variable nameDCCL80′message’ and then it’s done. If the text string “High level languages hide complexity of assembler” does not fit, shift the screen more to the right and complete the sentence.

Submit JCL to compile assembler program source code

submit ; =sd ; st the JCL and jump back to the ISPF Primary Option Menu. From there I navigate to the console using =6 and execute two commands.

  1. allocate dataset(*) file(recdd) shr
    Assembler program writes to RECDD file name
    The above allocates RECDD file name to the display, *
  2. call ‘z#####.load(asmhello)’ – substitute your ID for z######

Successfull execution writes three messages to the display

And yes I have that!

Submit JCL job to execute successfully compiled assember program

From the ISPF Primary Option Menu I execute tso submit ‘zos.public.jcl(p3ch11)’ and I chose the job character ‘a’.


There we go! I had some trouble with this challenge and never found the real reason. Suddenly my message displayed, weird! But hey! I’m not complaining, up to challenge 12!

IBM MTM 2019: Part Three – Challenge #10

Hi people!

Thanks for all the help by the way! You guys are awesome! And again, I’m sorry to the commenters, I have about 40 comments, 8 e-mails and some PMs on Slack still waiting for help with their challenges.

I don’t have enough time to solve the challenges, write blogs and answer everything. I sincerely wish I could help everyone! I’ll do my best to answer the ones I can! I have noticed Akos and other users answering other readers, awesome!

As a non-student I have until the 9th of september 2020 to beat this challenge, but I’ll do my best to finish up to challenge 14 in time 🙂

PS: I have double checked for spelling errors this time (embarrassing)

IBM Z Assembler

IBM Master the Mainframe Part Three – Challenge #10

Copy assembler program source code

Let’s start by creating a new member asmhello in our SOURCE data set. Inthere I’ll copy ‘zos.mtm2019.public.p3.source(asmhello)’.

Submit JCL to compile assembler program source code

Let’s sub ; =sd ; st the code and check the output for ASMHELLO in the JES spool.

Identify reason assembler program compile was unsuccessful

Let me investigate the issue.

So I have noticed there is an issue with an undefined symbol.

Correct assember program source code error and re-compile

Let’s go back to our source code and locate the undefined symbol. Ok, I’ll try to help. A variable has been defined in the program body. The logic, in the program references, uses these variables. Something seems to be wrong with them.

I have highlighted the variables. Please take a good look and fix where needed.

I will submit the job, again using sub ; =sd ; st and check the output.

RC code is 0000! That means I have fixed the issue.

Execute successfully compiled assember program interactively

From the ISPF Primary Option Menu I’ll issue the primary command =6 to get to the command console. I’ll execute allocate dataset(*) file(recdd) shr and then call ‘z50087.load(asmhello)’. Substitute your ID 😉

Successfull execution writes two messages to the display. And there are two messages! Yaya!

Submit JCL job to execute successfully compiled assember program

Now let’s do the last step for this challenge. Issue the primary command tso submit ‘zos.public.jcl(p3ch10)’ to direct the output to P3.OUTPUT(#10). Pick any jobname as always.

This is challenge #10 done!