> I knew an ISV that used mnemonic (purpose-oriented) names for register
equates
It's an interesting concept. Back in my earliest days of programming I saw
some IBM code that did that. It was horrible. 8-character names that only
some standards Nazi could love:
LR IEGHBZXA,IEHGHZYB
But I was fascinated by the idea and gave it a try, using more meaningful
names:
LA RECPTR,BUFFER
I decided I did not like it and did not continue. Assembler is assembler.
You can't get away from that. R1 has unique characteristics (TRT, system
macros, etc.) and you lose something if you obscure that you are dealing
with R1. It's not just a record pointer, it's R1.
Charles
-----Original Message-----
From: IBM Mainframe Assembler List [mailto:[email protected]]
On Behalf Of Paul Gilmartin
Sent: Thursday, April 20, 2017 5:33 PM
To: [email protected]
Subject: Re: CONVTOD Help
On 2017-04-20, at 17:22, Charles Mills wrote:
> Not sure what your question is?
>
> - Does using index registers as opposed to base registers hurt
performance?
> Maybe. Who knows anymore. "It depends." They don't help. They also add
> an astonishment factor if you ever end up in AR mode.
>
Oops.
> - Is there an AGI instruction? I don't think so, but there is an AGFI.
> What is the relevance here?
>
Address Generation Interlock. One of the great problems that must be
countered in the 21st Century is that there are only
17576 TLAs. (Not "Texas/Tennessee Library Association".)
> Yes, if you had minimum wage for every hour that programmers have
> spent defining their own register equates you could retire AND buy
> yourself a z13 to play with. I don't think IBM provides an official
> and generic set of equates but IIRC there is one in TCPIP.SEZACMAC.
>
And there seems to be SYS1.MACLIB(YREGS). And *JES3*(IATYREGS) ...
When ARs were invented IBM added calls to IATYREGS to several
JES3 macros. IATYREGS contains conditional assembly code to disable itself
on every invocation after the first. But the register equates in IATYREGS
conflicted with several equates in our own register macro. I suggested to
the developer most affected that she add similar bypass code using the same
SET symbol to our register macro. She disliked the idea (NIH?
Misuse of IBM's SET symbol?) and did something different.
I don't remember precisely what.
But as the z grows in complexity, the hazard of using IBM's register macro
grows correspondingly, Prefixing? Probably not,
> Yes, if you really wanted to make life H3ll on your successors you
> could use
>
> R0 EQU 5
> R1 EQU 2
> etc.
>
I knew an ISV that used mnemonic (purpose-oriented) names for register
equates. I believe their domain name is for sale.
-- gil