Re: Annoyance with the IEZJSAB macro

2011-07-11 Thread Wayne Driscoll
TRT is just one of a handful of instructions that modify all (or in the 
case of TRT) some of R2.

===
Wayne Driscoll
OMEGAMON DB2 L3 Support/Development
wdrisco(AT)us.ibm.com
===



From:
Mike Schwab mike.a.sch...@gmail.com
To:
IBM-MAIN@bama.ua.edu
Date:
07/08/2011 04:13 PM
Subject:
Re: Annoyance with the IEZJSAB macro
Sent by:
IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu



Doesn't the TRanslate and Test instruction set R2 to an address?

On Fri, Jul 8, 2011 at 3:42 PM, Rick Fochtman rfocht...@ync.net wrote:
 Ted MacNEIL wrote:

 When I learned Assembler, I was taught that registers 1,1,14 and 15 
could
 NEVER be expected to remain unchanged accross a macro invokation.

 Where is the second R1 maintained?
 (8-{]}


 Pardon me; I meant R0. Finger check?  :-)

 Rick
-- 
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html




--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-11 Thread Tom Marchant
On Sat, 9 Jul 2011 11:50:19 -0700, Edward Jaffe wrote:

While I'll readily admit there might others, this is the first and only
one I've heard of that does this.

I looked.  I find 30 macros in SYS1.MACLIB that issue USING.  5 of them 
use PUSH/POP.  A few of them leave the USING in effect when they end.

The problem that occurs because of the lack of PUSH/POP is an assembly 
error.  IMO this is far better than the result if the USING remains in effect 
but the register contents have changed.

I remain unconvinced that PUSH/POP is appropriate when the register 
contents are not restored.  I might go so far as to contend that whenever 
a macro alters  registers 1, 14 or 15 it should issue a DROP for those 
registers if there is an active USING.  Unfortunately, AFAIK, there is no 
way to do that.

-- 
Tom Marchant

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-11 Thread Paul Gilmartin
On Mon, 11 Jul 2011 08:53:31 -0500, Tom Marchant wrote:

I looked.  I find 30 macros in SYS1.MACLIB that issue USING.  5 of them
use PUSH/POP.  A few of them leave the USING in effect when they end.

The problem that occurs because of the lack of PUSH/POP is an assembly
error.  IMO this is far better than the result if the USING remains in effect
but the register contents have changed.
 
Again, it depends on what programmers are accustomed to.  If,
magically overnight, the relevant DROP were added to every macro
in SYS1.MACLIB that alters a register, would it be an immediate
boon or a bane to the assembler programmer community?
I remain unconvinced.

I remain unconvinced that PUSH/POP is appropriate when the register
contents are not restored.  I might go so far as to contend that whenever
a macro alters  registers 1, 14 or 15 it should issue a DROP for those
registers if there is an active USING.  Unfortunately, AFAIK, there is no
way to do that.

If it were desirable, how about:

 USING 0,1,14,15  (Fewer, ad lib.)
 DROP  1,14,15

 ... ?  Of course, if the caller has a bracketing PUSH/POP to encapsulate
a USING for another register, that POP willy-nilly restores the USING
for R1.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-11 Thread Shmuel Metz (Seymour J.)
In 3636987791660692.wa.paulgboulderaim@bama.ua.edu, on
07/11/2011
   at 09:40 AM, Paul Gilmartin paulgboul...@aim.com said:

Again, it depends on what programmers are accustomed to.  If,
magically overnight, the relevant DROP were added to every macro in
SYS1.MACLIB that alters a register, would it be an immediate boon or
a bane to the assembler programmer community?

That's reminiscent of a lot of programs that worked[1] in OS/360 bot
got ABEND S0C4 in OS/VS1. I would be willing to bet that adding the
DROP statements would have a similar effect.

[1] They sometimes got incorrect output, but didn't ABEND
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-11 Thread Shmuel Metz (Seymour J.)
In p06240800ca3eb2ceae91@[192.168.1.11], on 07/09/2011
   at 10:04 PM, Robert A. Rosenberg hal9...@panix.com said:

If the macro takes it upon itself to issue a USING on one of the 4 
linkage registers [instead of just using the usual 
Value-DSECT(Register) displacement addressing] it should clean up 
after itself by using PUSH/POP

I would consider that harmful. If you want consistency, then any macro
altering a register should issue a DROP.

or at least document that it will destroy not only the pre-call 
Register Contents  (as it is allowed to do due to the designation 
of R14-R1 as Linkage  Registers) but any pre-call USINGs that 
were in effect.

There we almost agree; I would be satisfied with a generic statement
that any macro altering a register might also issue a DROP.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-09 Thread Peter Relson
When I learned Assembler, I was taught that registers 0,1,14 and 15 
could NEVER be expected to remain unchanged accross a macro invokation. 

If I may say so,  the lesson was a bit incomplete. To be more correct, 
change the word never to not and add unless the macro documented 
otherwise. 

And of course any macro might document non-standard linkage conventions 
(such as SETLOCK which by default modifies registers 11,12,13) that the 
user must accommodate. 

Peter Relson
z/OS Core Technology Design

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-09 Thread Rick Fochtman
snip 



When I learned Assembler, I was taught that registers 0,1,14 and 15 
could NEVER be expected to remain unchanged accross a macro invokation. 
   



If I may say so,  the lesson was a bit incomplete. To be more correct, 
change the word never to not and add unless the macro documented 
otherwise. 

And of course any macro might document non-standard linkage conventions 
(such as SETLOCK which by default modifies registers 11,12,13) that the 
user must accommodate. 


Peter Relson
z/OS Core Technology Design
 


--unsnip
I won't disagree with you, Peter, but my lesson was delivered when 
OS/360 R16.6 was the lastest thing on the street.


The next lesson came via OJT: There's no excuse for not reading the doc.

Rick

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-09 Thread Tom Marchant
On Fri, 8 Jul 2011 17:39:55 -0400, Robert A. Rosenberg hal9...@panix.com 
wrote:

The fact that the contents of R14-R1 not remaining unchanged across a
macro invocation is not the issue. The issue was a USING not
remaining unchanged across the macro invocation. Since the user is
restoring R1 after the macro the expectation is that the use of the
macro should not have changed the environment. The destruction of the
USING by the macro voids this expectation.

If a macro changes, e.g., register 4 (with an appropriate save) and issues 
a USING for register 4, there would be no disagreement.  In that case 
PUSH USING/POP USING would be needed.

However, I am not convinced that it would be correct for a macro to 
re-establish the USING for register 1 when the contents of register 1
are known to have been changed.

-- 
Tom Marchant

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-09 Thread Paul Gilmartin
On Sat, 9 Jul 2011 11:11:19 -0500, Tom Marchant m42tom-ibmm...@yahoo.com 
wrote:

If a macro changes, e.g., register 4 (with an appropriate save) and issues
a USING for register 4, there would be no disagreement.  In that case
PUSH USING/POP USING would be needed.

However, I am not convinced that it would be correct for a macro to
re-establish the USING for register 1 when the contents of register 1
are known to have been changed.
 
The issue remains consistency.  Nearly all system macros leave the USINGs
in effect unchanged regardless that they change and leave changed the
content of associated registers.  The macro in question here is anomalous
in modifying the USINGs.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-09 Thread Edward Jaffe

On 7/9/2011 10:46 AM, Paul Gilmartin wrote:

The issue remains consistency.  Nearly all system macros leave the USINGs
in effect unchanged regardless that they change and leave changed the
content of associated registers.  The macro in question here is anomalous
in modifying the USINGs.


Agreed. While I'll readily admit there might others, this is the first and only 
one I've heard of that does this.


--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
310-338-0400 x318
edja...@phoenixsoftware.com
http://www.phoenixsoftware.com/

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-09 Thread Chase, John
 -Original Message-
 From: IBM Mainframe Discussion List On Behalf Of Mike Schwab
 
 Doesn't the TRanslate and Test instruction set R2 to an address?

Sometimes.  :-)

-jc-

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-09 Thread Shmuel Metz (Seymour J.)
In p06240803ca3c103edc65@[192.168.1.11], on 07/07/2011
   at 09:50 PM, Robert A. Rosenberg hal9...@panix.com said:

You are confusing two issues.

No.

There is a USING for R1 when the macro was called.

I'm aware of that.

This USING was destroyed by the macro when it issued its  own USING
without bracketing it with a PUSH/POP.

I see nothing wrong with that.

This has nothing to do with the macro making use of R1

Wrong.

he user can restore the contents of R1 after the return from the 
macro by reloading the needed value. What should NOT be also 
needed is to reissue the USING

Were somebody in a class that I was teaching to write code that loaded
R1 after a macro call but did not reissue the USING, I'd subtract a
few points from his grade.

the macro should not be issuing its own USING without protecting 
the current USING via PUSH/POP.

That's your opinion. IMHO the macro should not protect the USING
unless it also protects the register contents.

-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-09 Thread Robert A. Rosenberg
At 11:11 -0500 on 07/09/2011, Tom Marchant wrote about Re: Annoyance 
with the IEZJSAB macro:


On Fri, 8 Jul 2011 17:39:55 -0400, Robert A. Rosenberg 
hal9...@panix.com wrote:



The fact that the contents of R14-R1 not remaining unchanged across a
macro invocation is not the issue. The issue was a USING not
remaining unchanged across the macro invocation. Since the user is
restoring R1 after the macro the expectation is that the use of the
macro should not have changed the environment. The destruction of the
USING by the macro voids this expectation.


If a macro changes, e.g., register 4 (with an appropriate save) and issues
a USING for register 4, there would be no disagreement.  In that case
PUSH USING/POP USING would be needed.

However, I am not convinced that it would be correct for a macro to
re-establish the USING for register 1 when the contents of register 1
are known to have been changed.


While I agree with your statement about R4 (and protecting any USING 
that references R4) since the normal registers that are subject to 
being used by a macro (or subroutine) are only R14-R1, that usage is 
about the register contents being altered NOT about USINGs pointing 
to the register (which must be restored due to the non-standard usage 
of R4 via a USING).


If the macro takes it upon itself to issue a USING on one of the 4 
linkage registers [instead of just using the usual 
Value-DSECT(Register) displacement addressing] it should clean up 
after itself by using PUSH/POP to restore any existent USINGs on 
these 4 registers that were in effect when it was called or at least 
document that it will destroy not only the pre-call Register Contents 
(as it is allowed to do due to the designation of R14-R1 as Linkage 
Registers) but any pre-call USINGs that were in effect.


Just as you save the contents of other registers (as with R4 in your 
example) or at least document this usage, it should either document 
or preserve the USINGs. Changing the R14-R1 contents across a Macro 
Call/Use is normal - Making use of a USING is not and thus should be 
done within a PUSH/POP. Issuing a PUSH/POP within the Macro when none 
of the 4 registers were the subject of a USING at macro call time is 
harmless and just good programming (as others have pointed out).


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-08 Thread Binyamin Dissen
On Thu, 7 Jul 2011 21:50:24 -0400 Robert A. Rosenberg hal9...@panix.com
wrote:

:At 6:34 PM -0400 on 7/7/11, Shmuel Metz (Seymour J.) wrote about Re: 
:Annoyance with the IEZJSAB macro:
:
:You're the one asking IBM to provide training wheels. An experience
:assembler program should know to reinstate addressability R14, R15 and
:R1 following any code that alters the subject register.
:
:You are confusing two issues. There is a USING for R1 when the macro 
:was called. This USING was destroyed by the macro when it issued its 
:own USING without bracketing it with a PUSH/POP. This has nothing to 
:do with the macro making use of R1 since the user can restore the 
:contents of R1 after the return from the macro by reloading the 
:needed value. What should NOT be also needed is to reissue the USING 
:since unless documented in the Macro definition, the macro should not 
:be issuing its own USING without protecting the current USING via 
:PUSH/POP. All the docs say that R14-R1 are subject to being modified 
:by the Macros NOT that USINGs on these registers are also subject to 
:being modified/destroyed by the macros.
:
:Note that DSECT mapping Macros use PUSH/POP when they modify the 
:PRINT settings so the state upon finishing the macro mapping is the 
:same as when the macro was called. This same consideration should IMO 
:apply to a macro hijacking the USING states.

Yes, you got it. And an IBM employee on this list also got it and emailed me
privately.

--
Binyamin Dissen bdis...@dissensoftware.com
http://www.dissensoftware.com

Director, Dissen Software, Bar  Grill - Israel


Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.

I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-08 Thread Rick Fochtman

--snip---


Next in importance is lowering the Astonishment Factor.
programmers are accustomed to USINGs being preserved by
macro invocations regardless that the associated registers are
modified.
   



I've never assumed that addressability is maintained for R14-R1 across
macro invocations and have always provided a new USING if I reload one
of them.
 


--unsnip--
When I learned Assembler, I was taught that registers 1,1,14 and 15 
could NEVER be expected to remain unchanged accross a macro invokation. 
Seemed like a sound principle at the time and I still keep it in mind. 
IMNSHO, this principle remains unchanged.


Rick


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-08 Thread Ted MacNEIL
When I learned Assembler, I was taught that registers 1,1,14 and 15 could 
NEVER be expected to remain unchanged accross a macro invokation. 

Where is the second R1 maintained?
(8-{]}

-
Ted MacNEIL
eamacn...@yahoo.ca
Twitter: @TedMacNEIL

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-08 Thread Rick Fochtman

Ted MacNEIL wrote:

When I learned Assembler, I was taught that registers 1,1,14 and 15 could NEVER be expected to remain unchanged accross a macro invokation. 
   



Where is the second R1 maintained?
(8-{]}
 


Pardon me; I meant R0. Finger check?  :-)

Rick

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-08 Thread Mike Schwab
Doesn't the TRanslate and Test instruction set R2 to an address?

On Fri, Jul 8, 2011 at 3:42 PM, Rick Fochtman rfocht...@ync.net wrote:
 Ted MacNEIL wrote:

 When I learned Assembler, I was taught that registers 1,1,14 and 15 could
 NEVER be expected to remain unchanged accross a macro invokation.

 Where is the second R1 maintained?
 (8-{]}


 Pardon me; I meant R0. Finger check?  :-)

 Rick
-- 
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-08 Thread Rick Fochtman
Yes, but I'd expect anyone using it to be familiar enough with the 
instruction to know that.


Rick
---
Mike Schwab wrote:


Doesn't the TRanslate and Test instruction set R2 to an address?

On Fri, Jul 8, 2011 at 3:42 PM, Rick Fochtman rfocht...@ync.net wrote:
 


Ted MacNEIL wrote:

   


When I learned Assembler, I was taught that registers 1,1,14 and 15 could
NEVER be expected to remain unchanged accross a macro invokation.
   


Where is the second R1 maintained?
(8-{]}

 


Pardon me; I meant R0. Finger check?  :-)

Rick
   



--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-08 Thread Robert A. Rosenberg
At 13:23 -0500 on 07/08/2011, Rick Fochtman wrote about Re: Annoyance 
with the IEZJSAB macro:



--snip---


Next in importance is lowering the Astonishment Factor.
programmers are accustomed to USINGs being preserved by
macro invocations regardless that the associated registers are
modified.


I've never assumed that addressability is maintained for R14-R1 across
macro invocations and have always provided a new USING if I reload one
of them.


--unsnip--
When I learned Assembler, I was taught that registers 1,1,14 and 15 
could NEVER be expected to remain unchanged accross a macro 
invokation. Seemed like a sound principle at the time and I still 
keep it in mind. IMNSHO, this principle remains unchanged.


Rick


The fact that the contents of R14-R1 not remaining unchanged across a 
macro invocation is not the issue. The issue was a USING not 
remaining unchanged across the macro invocation. Since the user is 
restoring R1 after the macro the expectation is that the use of the 
macro should not have changed the environment. The destruction of the 
USING by the macro voids this expectation.


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-08 Thread Gerhard Postpischil

On 7/8/2011 5:12 PM, Mike Schwab wrote:

Doesn't the TRanslate and Test instruction set R2 to an address?


Tsk, tsk! g  TRT is not a macro. And when it alters registers, 
R1 is set to an address, and (low byte) of R2 to a value.


Gerhard Postpischil
Bradford, VT

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-08 Thread Ted MacNEIL
Kidding!
-
Ted MacNEIL
eamacn...@yahoo.ca
Twitter: @TedMacNEIL

-Original Message-
From: Rick Fochtman rfocht...@ync.net
Sender: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu
Date: Fri, 8 Jul 2011 15:42:52 
To: IBM-MAIN@bama.ua.edu
Reply-To: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu
Subject: Re: Annoyance with the IEZJSAB macro

Ted MacNEIL wrote:

When I learned Assembler, I was taught that registers 1,1,14 and 15 could 
NEVER be expected to remain unchanged accross a macro invokation. 



Where is the second R1 maintained?
(8-{]}
  

Pardon me; I meant R0. Finger check?  :-)

Rick

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-07 Thread Binyamin Dissen
On Wed, 6 Jul 2011 13:35:08 -0500 Paul Gilmartin paulgboul...@aim.com wrote:

:Assembler is without training wheels. If I do not do a DROP, I do not want a
:DROP. It does not matter if STORAGE, GET or IAZJSAB are issued.

:Irrelevant.  Analogously you might sqy that if you do not load
:R1 you do not not want R1 modified.

The MACRO I used was documented as potentially changing R1. If you cannot read
the doc you should not be programming assembler. 

:And HLASM is developing the training wheels.  Naming USINGs
:in effect in listing page headers, warning of overlapping
:USING ranges, warning of page zero references, etc.  Your
:justifiable pride in mastering a difficult activity should not
:lead to objections to making that activity simpler.

The macro issuing a DROP did not make things simpler.

--
Binyamin Dissen bdis...@dissensoftware.com
http://www.dissensoftware.com

Director, Dissen Software, Bar  Grill - Israel


Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.

I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-07 Thread Shmuel Metz (Seymour J.)
In listserv%201107061335080169.0...@bama.ua.edu, on 07/06/2011
   at 01:35 PM, Paul Gilmartin paulgboul...@aim.com said:

Next in importance is lowering the Astonishment Factor.
programmers are accustomed to USINGs being preserved by
macro invocations regardless that the associated registers are
modified.

I've never assumed that addressability is maintained for R14-R1 across
macro invocations and have always provided a new USING if I reload one
of them.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-07 Thread Shmuel Metz (Seymour J.)
In 5b99179jr0b517n81j81bk2qravs1mn...@4ax.com, on 07/06/2011
   at 09:14 PM, Binyamin Dissen bdis...@dissensoftware.com said:

Following your argument, any macro that alters R14-R1 should issue a
DROP for those registers.

No.

Assembler is without training wheels.

You're the one asking IBM to provide training wheels. An experience
assembler program should know to reinstate addressability R14, R15 and
R1 following any code that alters the subject register.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-07 Thread Robert A. Rosenberg
At 6:34 PM -0400 on 7/7/11, Shmuel Metz (Seymour J.) wrote about Re: 
Annoyance with the IEZJSAB macro:



You're the one asking IBM to provide training wheels. An experience
assembler program should know to reinstate addressability R14, R15 and
R1 following any code that alters the subject register.


You are confusing two issues. There is a USING for R1 when the macro 
was called. This USING was destroyed by the macro when it issued its 
own USING without bracketing it with a PUSH/POP. This has nothing to 
do with the macro making use of R1 since the user can restore the 
contents of R1 after the return from the macro by reloading the 
needed value. What should NOT be also needed is to reissue the USING 
since unless documented in the Macro definition, the macro should not 
be issuing its own USING without protecting the current USING via 
PUSH/POP. All the docs say that R14-R1 are subject to being modified 
by the Macros NOT that USINGs on these registers are also subject to 
being modified/destroyed by the macros.


Note that DSECT mapping Macros use PUSH/POP when they modify the 
PRINT settings so the state upon finishing the macro mapping is the 
same as when the macro was called. This same consideration should IMO 
apply to a macro hijacking the USING states.


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-07 Thread DanD

From: Robert A. Rosenberg
snip
Note that DSECT mapping Macros use PUSH/POP when they modify the
PRINT settings so the state upon finishing the macro mapping is the
same as when the macro was called. This same consideration should IMO
apply to a macro hijacking the USING states.
---

I agree Robert.

I just don't see why the USING at all.  Almost all other IBM macros don't 
access via USING.


The IAZXJSAB references the TCB via PSATOLD-PSA(,0), STCB via 
TCBSTCB-TCB(14,0), and gets to the JSAB via STCBJSAB-STCB(14).

Why not use
   TMJSABFLG1-JSAB(1),JSABNVAL
instead of
   TMJSABFLG1,JSABNVAL
etc.

Dan

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-06 Thread Shmuel Metz (Seymour J.)
In listserv%201107050048372743.0...@bama.ua.edu, on 07/05/2011
   at 12:48 AM, Paul Gilmartin paulgboul...@aim.com said:

o A blanket statement in any relevant Users Guide(s) that no macro
  modifies any caller's setting such as USING (PRINT? Others?)
  without restoring it before returning to caller.

I would prefer a blanket statement that no macro should be assumed to
retain a simple USING for R14, R15 or R1.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-06 Thread Shmuel Metz (Seymour J.)
In 4vq3171fiv25v2ogpb9gr0vphj4d3g4...@4ax.com, on 07/04/2011
   at 07:36 PM, Binyamin Dissen bdis...@dissensoftware.com said:

Yes, as I reload R1. Why need I reissue the USING?

The macro doesn't know that you are going to reload R1. IMHO it would
be an error for IAZXJSAB to load a register and not drop the previous
addressability unless it restored the previous register contents. If
you insist on retaining a USING for R1 across IAZXJSAB, you can always
use a labelled USING.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-06 Thread Binyamin Dissen
On Wed, 6 Jul 2011 14:05:07 -0400 Shmuel Metz (Seymour J.)
shmuel+ibm-m...@patriot.net wrote:

:In 4vq3171fiv25v2ogpb9gr0vphj4d3g4...@4ax.com, on 07/04/2011
:   at 07:36 PM, Binyamin Dissen bdis...@dissensoftware.com said:

:Yes, as I reload R1. Why need I reissue the USING?

:The macro doesn't know that you are going to reload R1. IMHO it would
:be an error for IAZXJSAB to load a register and not drop the previous
:addressability unless it restored the previous register contents. If
:you insist on retaining a USING for R1 across IAZXJSAB, you can always
:use a labelled USING.

Following your argument, any macro that alters R14-R1 should issue a DROP for
those registers.

But they do not.

Assembler is without training wheels. If I do not do a DROP, I do not want a
DROP. It does not matter if STORAGE, GET or IAZJSAB are issued.

--
Binyamin Dissen bdis...@dissensoftware.com
http://www.dissensoftware.com

Director, Dissen Software, Bar  Grill - Israel


Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.

I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-06 Thread Paul Gilmartin
On Wed, 6 Jul 2011 21:14:13 +0300, Binyamin Dissen wrote:

On Wed, 6 Jul 2011 14:05:07 -0400 Shmuel Metz (Seymour J.) wrote:

:Yes, as I reload R1. Why need I reissue the USING?

:The macro doesn't know that you are going to reload R1. IMHO it would
:be an error for IAZXJSAB to load a register and not drop the previous
:addressability unless it restored the previous register contents. If
:you insist on retaining a USING for R1 across IAZXJSAB, you can always
:use a labelled USING.

Following your argument, any macro that alters R14-R1 should issue a DROP for
those registers.

But they do not.

Most important is documenting side effects.  Generally, macros
document which registers they modify.  Likewise, if a macro
changes the setting of USING (or PRINT, or whatever) that should
be documented.

Next in importance is lowering the Astonishment Factor.
programmers are accustomed to USINGs being preserved by
macro invocations regardless that the associated registers
are modified.  And they are not accustomed to inspecting
the documentation to see that a USING may be DROPped.

Assembler is without training wheels. If I do not do a DROP, I do not want a
DROP. It does not matter if STORAGE, GET or IAZJSAB are issued.

Irrelevant.  Analogously you might sqy that if you do not load
R1 you do not not want R1 modified.

And HLASM is developing the training wheels.  Naming USINGs
in effect in listing page headers, warning of overlapping
USING ranges, warning of page zero references, etc.  Your
justifiable pride in mastering a difficult activity should not
lead to objections to making that activity simpler.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-05 Thread Edward Jaffe

On 7/4/2011 3:33 PM, Edward Jaffe wrote:

BTW, the macro is IAZJSAB (IAZ not IEZ).


Oops. How embarrassing. I have to correct my correction... :-[

The macro under discussion is IAZXJSAB. (IAZJSAB is the mapping macro for the 
JSAB control block.)


--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
310-338-0400 x318
edja...@phoenixsoftware.com
http://www.phoenixsoftware.com/

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-04 Thread Paul Gilmartin
On Sun, 3 Jul 2011 23:29:02 +0300, Binyamin Dissen wrote:

I had a USING on R1 before the macro. I realize that IEZJSAB alters the
standard registers, so I did a restore of R1 after the macro. Sadly IEZJSAB
does a USING and DROP on 1.

It would seem to me that any macro the does a USING/DROP should bracket itself
with PUSH and POP USING. I should not have to do that in open code.

So you would prefer that the macro do something such as:

 PUSH  USING
 (modify content of R1, as documented.)
 USING whatever,R1
 ...
 POP   USING
 MEXIT

... returning to the caller with R1 modified but the prior USING ,R1
remaining in effect?

Hmmm...

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-04 Thread Binyamin Dissen
On Mon, 4 Jul 2011 11:15:35 -0500 Paul Gilmartin paulgboul...@aim.com wrote:

:On Sun, 3 Jul 2011 23:29:02 +0300, Binyamin Dissen wrote:

:I had a USING on R1 before the macro. I realize that IEZJSAB alters the
:standard registers, so I did a restore of R1 after the macro. Sadly IEZJSAB
:does a USING and DROP on 1.

:It would seem to me that any macro the does a USING/DROP should bracket 
itself
:with PUSH and POP USING. I should not have to do that in open code.

:So you would prefer that the macro do something such as:

: PUSH  USING
: (modify content of R1, as documented.)
: USING whatever,R1
: ...
: POP   USING
: MEXIT

:... returning to the caller with R1 modified but the prior USING ,R1
:remaining in effect?

Yes, as I reload R1. Why need I reissue the USING?

Of course, if you want to make the case that most macros DROP R14-R1 ..

--
Binyamin Dissen bdis...@dissensoftware.com
http://www.dissensoftware.com

Director, Dissen Software, Bar  Grill - Israel


Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.

I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-04 Thread Paul Gilmartin
On Mon, 4 Jul 2011 19:36:55 +0300, Binyamin Dissen wrote:

:It would seem to me that any macro the does a USING/DROP should bracket 
itself
:with PUSH and POP USING. I should not have to do that in open code.

:So you would prefer that the macro do something such as:

: PUSH  USING
: (modify content of R1, as documented.)
: USING whatever,R1
: ...
: POP   USING
: MEXIT

:... returning to the caller with R1 modified but the prior USING ,R1
:remaining in effect?

Yes, as I reload R1. Why need I reissue the USING?

Of course, if you want to make the case that most macros DROP R14-R1 ..

Are you averring that's the current modal behavior?  I'm not
an expert.  I see some value in consistency.

My shallow perception is that most macros (inexplicably?)
eschew USING and rely on explicitly citing base registers
in storage instructions.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-04 Thread Binyamin Dissen
On Mon, 4 Jul 2011 11:59:08 -0500 Paul Gilmartin paulgboul...@aim.com wrote:

:On Mon, 4 Jul 2011 19:36:55 +0300, Binyamin Dissen wrote:

::It would seem to me that any macro the does a USING/DROP should bracket 
itself
::with PUSH and POP USING. I should not have to do that in open code.

::So you would prefer that the macro do something such as:

:: PUSH  USING
:: (modify content of R1, as documented.)
:: USING whatever,R1
:: ...
:: POP   USING
:: MEXIT

::... returning to the caller with R1 modified but the prior USING ,R1
::remaining in effect?

:Yes, as I reload R1. Why need I reissue the USING?

:Of course, if you want to make the case that most macros DROP R14-R1 ..

:Are you averring that's the current modal behavior?  I'm not
:an expert.  I see some value in consistency.

No, it does not.

Assembler does not come with training wheels.

:My shallow perception is that most macros (inexplicably?)
:eschew USING and rely on explicitly citing base registers
:in storage instructions.

Yes, they do. That is what annoyed me. I could not immediately see the cause
for the assembly error in the source code.

--
Binyamin Dissen bdis...@dissensoftware.com
http://www.dissensoftware.com

Director, Dissen Software, Bar  Grill - Israel


Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.

I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-04 Thread Edward Jaffe

On 7/3/2011 1:29 PM, Binyamin Dissen wrote:

It would seem to me that any macro the does a USING/DROP should bracket itself
with PUSH and POP USING. I should not have to do that in open code.


Agreed. All of our internal macros do just that.

BTW, the macro is IAZJSAB (IAZ not IEZ).

--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
310-338-0400 x318
edja...@phoenixsoftware.com
http://www.phoenixsoftware.com/

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-04 Thread Paul Gilmartin
On Mon, 4 Jul 2011 15:33:13 -0700, Edward Jaffe wrote:

On 7/3/2011 1:29 PM, Binyamin Dissen wrote:
 It would seem to me that any macro the does a USING/DROP should bracket 
 itself
 with PUSH and POP USING. I should not have to do that in open code.

Agreed. All of our internal macros do just that.

It appears that you and Binyamin have a strong argument based
on consistency with prevailing conventions.

Would someone more knowledgeable than I consider an RCF requesting
a clarification comprising:

o A blanket statement in any relevant Users Guide(s) that no macro
  modifies any caller's setting such as USING (PRINT? Others?)
  without restoring it before returning to caller.

o A similar statement that no macro issues an unbalanced PUSH or POP.

o An expressed commitment that any PMR reporting a verifiable
  violation of these terms will be addressed by either a DOC or a
  FIN (or better) APAR.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Annoyance with the IEZJSAB macro

2011-07-04 Thread Paul Gilmartin
On Tue, 5 Jul 2011 00:48:37 -0500, Paul Gilmartin wrote:

On Mon, 4 Jul 2011 15:33:13 -0700, Edward Jaffe wrote:

On 7/3/2011 1:29 PM, Binyamin Dissen wrote:
 It would seem to me that any macro the does a USING/DROP should bracket 
 itself
 with PUSH and POP USING. I should not have to do that in open code.

Agreed. All of our internal macros do just that.

It appears that you and Binyamin have a strong argument based
on consistency with prevailing conventions.

Would someone more knowledgeable than I consider an RCF requesting
a clarification comprising:

o A blanket statement in any relevant Users Guide(s) that no macro
  modifies any caller's setting such as USING (PRINT? Others?)
  without restoring it before returning to caller.

(I meant to add, except as documented in the RM for the individual
macro.)

o A similar statement that no macro issues an unbalanced PUSH or POP.

o An expressed commitment that any PMR reporting a verifiable
  violation of these terms will be addressed by either a DOC or a
  FIN (or better) APAR.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Annoyance with the IEZJSAB macro

2011-07-03 Thread Binyamin Dissen
I had a USING on R1 before the macro. I realize that IEZJSAB alters the
standard registers, so I did a restore of R1 after the macro. Sadly IEZJSAB
does a USING and DROP on 1.

It would seem to me that any macro the does a USING/DROP should bracket itself
with PUSH and POP USING. I should not have to do that in open code.

--
Binyamin Dissen bdis...@dissensoftware.com
http://www.dissensoftware.com

Director, Dissen Software, Bar  Grill - Israel


Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.

I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html