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
