Well at the top of that page it says:

The type of ESTAE routine, that is, ESTAE or ESTAEX affects the AMODE of
the recovery routine as follows. For recovery routines defined through the:

   - ESTAE macro, at the time of entry to the recovery routine, the AMODE
   will be the same as at the time of invocation of the macro.
   - *ESTAEX macro, the AMODE will be the same as at the time of invocation
   of the macro,* unless the macro was invoked in AMODE 24 in which case
   the recovery routine AMODE will be 31-bit.
   - The AMODE at the retry point will be the same as the AMODE on entry to
   the recovery routine.

Joe
On Mon, Mar 23, 2020 at 6:32 PM Thomas David Rivers <riv...@dignus.com>
wrote:

> Joe Monk wrote:
>
> >"When you run in AMODE 64 (as indicated by specifying AMODE64=YES through
> >the SYSSTATE macro) and invoke ESTAEX, your ESTAEX routine will get
> control
> >in AMODE 64."
> >
> >
> https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.ieaa200/iea3a2_Description3.htm
> >
> >So looks like you have to specify the SYSSTATE macro in z/os 2.4.
> >
> >Joe
> >
> >
> I was thinking some more about this - I think you're right that the
> sentence there says if you're in AMODE 64 you need to indicate that
> with the AMODE64=YES option.
>
> But - there doesn't seem to be a prohibition from executing the
> ESTAEX in AMODE=64 _without_ the AMODE64=YES (which is what
> we were doing.)
>
> There are a couple of ideas floating around in the doc:
>
>    1) - What is the AMODE of the ESTAE EXIT routine?
>          answer:  It is the AMODE at the time of the issuing of the ESTAEX.
>
>    2) - What does the SDWAPARM field look like?
>           answer:  If SYSTATE AMODE=64 is specifed, the SDWAPARM is a
> 64-bit
>                           address that points to the value specified on
> the PARM parameter
>                           of the ESTAEX.
>
>                          IF SYSTATE AMODE=64 is _not_ specified, the
> SDWAPARM has
>                          2 components - the first is a 31-bit pointer to
> the value specified
>                          in the PARM paramter of the ESTAEX, the second
> is the ALET for
>                          that address.
>
>  Now - when my ESTAEX is complete, the AMODE is properly set to AMODE=64,
>  it's just that the address in the PSWA now looks like a 31-bit address
> (with bit32
>  magically set) instead of a "clean" 64-bit address... where before that
> didn't happen.
>
>  Seems like returning from ESTAEX shouldn't do that?
>
>  But - then again - you can read that sentence as "if your code runs in
> AMODE=64,
>  you _must_ specify SYSTATE AMODE=64 for the assembly."
>
>  What happens, then, if you specify SYSTATE AMODE=64 but the code is
> executing
>  in AMODE=31 ?
>
>        - Dave R. -
>
>
>
> --
> riv...@dignus.com                        Work: (919) 676-0847
> Get your mainframe programming tools at http://www.dignus.com
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to