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
