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”. 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 name, DC, CL80′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
I 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.
- allocate dataset(*) file(recdd) shr
Assembler program writes to RECDD file name
The above allocates RECDD file name to the display, * - 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!
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
i can not put more than 36 lines in asmhello..plz help..if i add new echo it will exceed 36 lines..can you plz help
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
Hello,
one ending character is missing from the end of this command:
call ‘z#####.load(asmhello)
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:
Any one had this problem, what I did wrong? 🙂
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.
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
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
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”
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.
Thank you
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.
I am having this problem but I will try the sentence below without system in it
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.