IBM MTM 2019: Part Three – Challenge #11

Hellow!

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”. This is an error on the challenge page! Thanks Viktor!

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

Output

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!

14 thoughts on “IBM MTM 2019: Part Three – Challenge #11

  1. Hi Keven, I’m enjoying your Blog. If you, or anyone else is interested I would suggest a better way of going about Challenge # 11, is to put the messages in a table (80 character entries) and then write them out in a loop.
    e.g. the code to write the message could be (sorry , I don’t know how to add comments as mono-spaced, so following will look a bit messy, please tidy up if possible):

    *———————————————————–
    * program body
    *———————————————————–
    OPEN (RECDD,OUTPUT)
    LHI 3,MSG#Q Number of messages
    LA 2,MSGTAB Address of first message
    LOOP MVC REC,0(2) Move message to REC
    PUT RECDD,REC Write message for disk
    AHI 2,MSGLENQ Bump on to next message
    BCT 3,LOOP Go round till all messages output
    CLOSE (RECDD)

    And the table could be:
    * table of 80 char messages
    MSGTAB DS 0C

    HELLOMSG DC CL80′ Assembler Hello World! ‘
    MSGLENQ EQU *-MSGTAB
    NEWMSG DC CL80’IBM Z is a complex instruction set’
    DC CL80’High level languages hide complexity of system assembler’

    MSG#Q EQU (*-MSGTAB)/MSGLENQ

  2. Hi! K here.
    I got the ‘system’ by just adding another line (another message) to the list of messages to have outputted. So I have four lines. I think it looks fine, but does anybody think I would have points taken off for not having just 3 lines?
    Thanks

  3. Hi,
    I’ve add new DC, MVC and PUT. Logically it must work, but I can’t understand why I have error:
    000012 0000 0000 0000 00000 00000 19 MVC REC,HELLOMSG
    ** ASMA044E Undefined symbol – REC
    ** ASMA068S Length error – REC
    ** ASMA435I Record 13 in Z52385.ASMHELLO.JOB02213.D0000101.? on volume:

      1. Ok, resolve this problem by change from: High level languages hide complexity of system assembler
        to:
        High level languages hide complexity of assembler
        And program works. On the IBM webpage, they write twice 3rd line, one time they write sentence without: “system”. Why ? 😀
        Any way, maybe someone know how to put “longer” sentence ? Thanks.

        1. Hi Viktor,

          Oh wow, I never noticed that they left out “system”. That’s why I suddenly finished the challenge. I was stuck for quite a bit on this.

          I don’t think we need to include “system” as the JCL doesn’t work with more characters than that. I would like to know though, but I don’t think they originally wanted that.

          Kind regards,
          Kevin

          1. Hi Kevin,

            Yep, I think it is enough to put just 3rd line without system 🙂

            I was also stuck on this task for a while, and just notice this suddenly 😀

            What I can say, it is assembler, maybe there is limitations of symbols or something.

            But it is good, that we know reason, so others can do this challenge quicker 🙂

            Bets regards,
            Viktor

            1. This is not an error on the challenge page. They only say it once, you have to output “High level languages hide complexity of system assembler”. If you want to write “system” as well you need a non-blank continuation character on 72th of the first line. It doesn’t matter if the character is right next to the statement, for example asse+
              next line column 16: mbler”

              1. And the next line should definitely start from the 16th column, I forgot to add this after I’ve edited the message. If you need to add more lines, same process.

                1. I went down the same path with the shorter message. Just went back and fixed it. Over on the Slack channel for the contest, there’s a thread on this and either one is ok but extra points for using the continuation and printing the longer message.

  4. I was able to finish this challenge before Kevin. (Sorry for the boasting)
    I asked a friend who’s an expert on Assembler to help me.
    I should asked if he could of help me with challenge 14.
    Because I still need challenge 14 and (recheck) 15.
    I still can’t get the two output for challenge 9.

Leave a Reply

Your email address will not be published. Name, email and website not required.