Just using a relative branch alone doesn't work if the GTTERM being executed is 
above the line. You have to use MF=(E,address) for it to work in RMODE 31. I'm 
referring to running GTTERM directly from above the line, not from a copy of it 
that is below the line as you are doing.

Bill

On Sat, 23 May 2015 10:06:31 -0700, Charles Mills wrote:

>Nope. It works. BAL 1, points R1 to the words following, in any event or 
>AMODE. The problem is the *+12 part. As a relative branch you can move the 
>instruction around in memory and it still jumps to *+12. As an old-fashioned 
>BAL it jumps to some specific address off of the CSECT base register. 
>
>No MF= anywhere in the picture.
>
>Charles
>
>-----Original Message-----
>From: IBM Mainframe Discussion List [mailto:[email protected]] On 
>Behalf Of Bill Godfrey
>Sent: Saturday, May 23, 2015 9:46 AM
>To: [email protected]
>Subject: Re: Where can a running TSO program get its "terminal name"
>
>I doubt that a relative branch will help. Register 1 is expected to contain an 
>address below the line.
>
>It works in RMODE 31, but only if MF=(E,address) is specified on GTTERM and 
>the specified address is below the line. The macro expansion will just point 
>register 1 to the specified address, or if the address is (1) leave it 
>unchanged.
>
>If register 1 points above the line, as it would with a BAL, SVC 94 gets a 
>S0C4, presumably because the above-the-line address in register 1 is not 
>expected.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to