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