AFAIK there is no publically available definitive set of macros for this sort 
of thing.

Most ISVs will either have company-wide or product-specific versions of macros 
like these - it all depends on the history of the product/team/lead developer.

Personally, I have a product-specific set that I use for MXI because when I 
started writing the commercial version of the product there was nothing 
appropriate to hand and I wanted to avoid using BAKR for subroutine register 
stacking.

Ed Jaffe has some publically available register stack management macros on the 
Phoenix Software website and he also describes them in his fantastic 
"Structured Assembler Language Programming Using HLASM" Share presentation.

I am not sure what the "NIU" set is.

Rob Scott
Lead Developer
Rocket Software
275 Grove Street * Newton, MA 02466-2272 * USA
Tel: +1.617.614.2305
Email: [email protected]
Web: www.rocketsoftware.com


-----Original Message-----
From: IBM Mainframe Assembler List [mailto:[email protected]] On 
Behalf Of Michael McCawley
Sent: 13 January 2012 18:22
To: [email protected]
Subject: Re: Enhanced CALL macro?

So Rob, can you recommend a good library of said macros?  Is Rocket still using 
the NIU set, like PTI of old?

-----Original Message-----
From: Rob Scott
Sent: Friday, January 13, 2012 8:55 AM
To: [email protected]
Subject: Re: Enhanced CALL macro?

To re-iterate, I was referring to SUBROUTINE related macros and standards - and 
not CSECT enter/exit (or prolog and epilog) macros.

A decent set of low-overhead subroutine macros allow the developer to divide 
the program up into logical and maintainable small chunks.

I despair when I see n-thousand line assembler programs (typically with 
multiple base registers) attempting to do everything in one big splat, 
typically with lots of spaghetti branching to abstract labels - yuk.

Rob Scott
Lead Developer
Rocket Software
275 Grove Street * Newton, MA 02466-2272 * USA
Tel: +1.617.614.2305
Email: [email protected]
Web: www.rocketsoftware.com

-----Original Message-----
From: IBM Mainframe Assembler List [mailto:[email protected]]
On Behalf Of Tom Marchant
Sent: 13 January 2012 14:38
To: [email protected]
Subject: Re: Enhanced CALL macro?

On Thu, 12 Jan 2012 21:42:41 -0700, Paul Gilmartin wrote:

>On Jan 11, 2012, at 07:03, Rob Scott wrote:
>>
>> IMHO the first resource needed by any assembler programmer before
>> writing
anything non-trivial is a set of macros that enable subroutine calling, 
register saving and return that cater for all environments.
>>
>Why doesn't IBM supply these and spare customers the redundant
>depletion of resource?

As Keven mentioned, there are SAVE and RESTORE, which have been there since the 
very early days of OS/360.  The LE macros, CEEENTRY and CEETERM do more.

Anything else depends upon programming standards at each shop.  For example, 
when obtaining storage for a save area, do you obtain additional storage for 
the program to use?  How much?  How does the macro determine how much?  What 
subpool is used?

Does the entry macro store information at the beginning of the program, such as 
program name, assembly date and time, company name, etc?

What about subroutines within the program?  Do they obtain their own storage or 
use the same storage that was allocated upon entry to the program?

--
Tom Marchant

Reply via email to