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
