Michael,

I really appreciate the critiques. I agree that some of my comments are
misleading and need to be updated. I like the suggestion for MVCL.

I was not aware of the potential hazards with register 2. Using register 2
as a save register when acquiring a DSA is very common in all of my code.
I'll be more judicious with my usage of this register.

For the register equates, I've found myself reassigning register usages
often and having equates like "SESSREG  EQU   R5" have made that really
easy in the past. If I find that register 6 aligns more easily with a
particular instruction (MVCL for example), then updating the equate for
SESSREG is much easier than performing CHANGE ALL commands and
inadvertently changing a field name, literal, or some other string.



Thank you,

Brian Chapman


On Tue, Nov 1, 2022 at 7:28 PM Michael Stein <[email protected]> wrote:

> > Any assistance would be greatly appreciated.
> >
> > I am working on a SNA interface for a batch framework. This is mostly
> just
> > a massive learning exercise that will likely never be utilized, but I
> have
> > learned SO much while working on this project (currently 6 years in the
> > making).
>
> I'm confused about what this is part of.  Is this a TSO program
> or something else (saying SNA? VTAM APPL?).
>
> I ask that because as far as I know GTTERM is TSO only.  But
> you got return code 0 so perhaps the GTTERM is being issued
> from TSO.
>
> > The address space accepts terminals with MOD2 terminals and everything
>
> "Terminals" plural.  A TSO session with more than one?
>
> > I check register 15 after the SVC, and it is zero. But the SVC parameter
> > values are still zero.
>
> When using MF=L and MF=E macro forms, usually it's necessary to copy
> an MF=L list into the DSECT area before using the MF=E form...
>
> This is not true for all macros, but perhaps for GTTERM.
>
> So somewhere in the source should be a GTTERM MF=L and then it should
> be copied (MVC) into GTTLIST in the DSECT before issuing the GTTERM
> MF=(E,GTTLIST).  I'd suggest looking at the full expansion of the GTTERM
> (both MF=L and MF=E) to see if this is needed.
>
> Other points:
>
> > WORKREG  EQU   R3
> > SESSREG  EQU   R5
>
> I've only used 16 registers R0->R15.  You can do what you want but I'd
> be very careful that additional register equates didn't result in some
> duplicate register usage.  I saw some IBM source which had:
>
>   R15   EQU  R9
>
> I'd prefer better comments, or when trivial, no comment.   As an
> example:
>
> >          LR    R2,R1                   SAVE REGISTER 2
>
> This appears backwards, saving R1 in R2.   Also R2 is a problematic
> register as some hardware instructions alter it without it being specified
> (TRT translate and test at least).  I'd be careful when I used it and
> treat it as a bit less temporary than R0, R1, R14, R15.
>
> More comments on comments (& register usage):
>
> >          LR    R6,WORKREG              LOAD REGISTER
> >          LA    R8,0                    SET DUMMY FROM ADDRESS
> >          XR    R9,R9                   SET PADDING TO LOW VALUES
> >          MVCL  R6,R8                   INITIALIZE AREA
>
> I'd suggest something like:
>
>            LR    R6,WORKREG              @ workarea to clear, len in R7
>            SR    R15,R15
>            MVCL  R6,R14
>
> The contents of R14 don't matter for the MVCL as the length in R15 is zero.
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>

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

Reply via email to