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?

Reply via email to