1) I don't check and it wouldn't make a difference unless they are mapped by a DSECT. We LM them and STM them into our own fullwords.
2) To accommodate easier coding in C++, we accept a fullword of zeroes as the final argument in lieu of a the high-order bit on calls with a variable number of parameters. But we do check all parameters, even the required ones. Gary Weinhold Data Kinetics, Ltd. On 8/11/2010 11:10 AM, Yip C. Paul wrote:
1) I usually don't check and it never ocurred to me to receive a list of parameters not fullword aligned. But it may be a problem if it isn't. 2) I always check. It's the first thing I do. If I don't get the right number of parameters, I interrupt the execution and immediately return an error code. Yip Cho Paul System Programmer ________________________________________ De: IBM Mainframe Assembler List [[email protected]] em Nome de McKown, John [[email protected]] Enviado: quarta-feira, 11 de agosto de 2010 11:07 Para: [email protected] Assunto: Parameter passing: overly cautious or properly paranoid? This is just curiousity on my part. I was thinking about standard parameter passing in z/OS. That's where R1 points to a list of fullwords containing address of parameters, with the last address having the high order bit set and all previous addresses having the high order bit unset. So I was wondering the following: 1) do you check to make sure that R1 actually points to a fullword boundry. I.e. bits 30&31 are '0'b? Is this necessary or not? If R1 doesn't point to a fullword boundry, is that actually an error? That is, do you feel that a proper parameter list must be fullword aligned? 2) do you always verify bit 0 of every fullword in the list of addresses to make sure that you get the expected number of parameters? What do you do if you get too few or too many?
