The flag, whatever its significance, is only there if the code that creates the SA on steroids puts the flag into the SA. One of the new sub-contexts for this thread is now how can a CALLed routine know the specifications of its CALLer-supplied RSA (Register Save Area, not Republic of South Africa). And the answer is that the CALLed routine cannot know in general. Chris Craddock talked about a contract. To me, this does not mean the CALLed code's working correctly, but rather the published documentation describing the technical details of the interface. If either the CALLer or the CALLee fails to meet a term in the contract, then there exists a bug in the code, the contract needs to be revised, or both. Anyone writing code that will CALL any other code (an API, a system routine, a system macro, etc.) needs to read thoroughly all the available documentation describing the interface, and needs to write his code accordingly. If the CALLed routine's contract does not spec! ify that a 144-byte ESA needs to be provided, then don't provide one. Or do provide one if you are feeling paranoid.
Bill Fairchild Rocket Software -----Original Message----- From: IBM Mainframe Assembler List [mailto:[email protected]] On Behalf Of Robert A. Rosenberg Sent: Tuesday, April 12, 2011 12:22 AM To: [email protected] Subject: Re: Best way to multiply doublewords? At 16:07 -0400 on 04/11/2011, Tom Marchant wrote about Re: Best way to multiply doublewords?: > >you'd need to look at the passed in save area to see if you were >>supplied with one which has room for the upper half of the registers. > >You can not tell by looking at the save area that was passed to you to >determine the size of the save area that was passed to you. I though that there was a flag (a text FxSA string) in the first word of the save area if it is not a standard 72-byte SA. That should be a tip-off to you being passed an extended SA. That flag is required so that the dump formatting software can correctly format your save area chain.
