John, 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.
These macros should enable the specification of the subroutine base and also optionally a register(s) to address any constants and literals. Using IEABRC and pertinent use of subroutines should remove 99.9% of all "base register" problems. 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 McKown, John Sent: 11 January 2012 13:35 To: [email protected] Subject: Re: Enhanced CALL macro? I will defer to your greater knowledge. The program that I'm working on right now is 983 lines long and assembles to 4764 bytes. As you said, an "nit" of a program. It does have an second CSECT in a separate source file which is 269 lines and assembles to 956 bytes. Oh, well, it has been a learning experience for me. Which is all that I am doing it for anyway, since z/OS is denigrated by management here as "far too expensive". We are a smaller company. Of the size which are no longer being courted by IBM and other z vendors. I guess we're not profitable enough for them. -- John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets(r) 9151 Boulevard 26 * N. Richland Hills * TX 76010 (817) 255-3225 phone * [email protected] * www.HealthMarkets.com Confidentiality Notice: This e-mail message may contain confidential or proprietary information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. HealthMarkets(r) is the brand name for products underwritten and issued by the insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance Company(r), Mid-West National Life Insurance Company of TennesseeSM and The MEGA Life and Health Insurance Company.SM > -----Original Message----- > From: IBM Mainframe Assembler List > [mailto:[email protected]] On Behalf Of Edward Jaffe > Sent: Tuesday, January 10, 2012 4:05 PM > To: [email protected] > Subject: Re: Enhanced CALL macro? > > On 1/10/2012 1:41 PM, Gord Tomlin wrote: > > What we do for this is use multiple location counters and > code in our > > prolog/epilog macros to automatically set up a base register for the > > part of the CSECT containing the constants. The using range > of the base > > register is automatically defined to cover only the > constants so that no > > code inadvertently uses base/displacement branching. The > code referring > > to constants "just works". > > Same here. Only a very small 'nit' program could get away without > needing a base register to 'cover' its constants. > > -- > Edward E Jaffe > Phoenix Software International, Inc > 831 Parkview Drive North > El Segundo, CA 90245 > 310-338-0400 x318 > [email protected] > http://www.phoenixsoftware.com/ > >
