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