Re: Addressing mode for SYNAD exit
No; "Using Data Sets" documents the high bits of R0 and R1, so if you're running AMODE=31 then it's your responsibility. IMHO they'd have done better to have a SYNADX= parameter in the DCBE with a fully 31-bit interface. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי From: IBM Mainframe Discussion List on behalf of Charles Hardee Sent: Monday, November 6, 2023 12:46 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Addressing mode for SYNAD exit To answer Seymour J. Metz's question first, it's specified in the DCB. To answer Charles Mills' question, the module is defined as RMODE 24, AMODE ANY, so the I/O was issued in 31-bit mode. Which now rings a bell, I, too, vaguely remember that SYNAD is called in the A-Mode of the code issuing the I/O. So, does this mean IBM has an issue in that they aren't clearing the flags from the DCB address when they load it for passing to the SYNAD exit, or is it my responsibility to clear the high byte before trying to use the DCB address in the low 3? C- On Mon, Nov 6, 2023 at 11:34 AM Charles Mills wrote: > My notes from 2005 seem to imply that the SYNAD exit may be called in > 31-bit mode. I think it is called in the mode under which the GET or PUT > was issued. > > Charles > > -- > 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 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Addressing mode for SYNAD exit
They can't strip the high bits without breaking the documented interface. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי From: IBM Mainframe Discussion List on behalf of Charles Hardee Sent: Monday, November 6, 2023 1:32 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Addressing mode for SYNAD exit Yep! I've already done that, added an NILH to strip away the high byte, but it does make for an interesting question. On Mon, Nov 6, 2023 at 12:30 PM Charles Mills wrote: > > does this mean IBM has an issue in that they aren't clearing the flags > >from the DCB address when they load it for passing to the SYNAD exit, or > is > >it my responsibility to clear the high byte > > Not sure, but I can darn sure tell you what the fastest resolution would > be! > > Charles > > > On Mon, 6 Nov 2023 11:46:16 -0600, Charles Hardee < > charleshhar...@gmail.com> wrote: > > >To answer Seymour J. Metz's question first, it's specified in the DCB. > > > >To answer Charles Mills' question, the module is defined as RMODE 24, > AMODE > >ANY, so the I/O was issued in 31-bit mode. > > > >Which now rings a bell, I, too, vaguely remember that SYNAD is called in > >the A-Mode of the code issuing the I/O. > > > >So, does this mean IBM has an issue in that they aren't clearing the flags > >from the DCB address when they load it for passing to the SYNAD exit, or > is > >it my responsibility to clear the high byte before trying to use the DCB > >address in the low 3? > > -- > 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 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Addressing mode for SYNAD exit
Yep! I've already done that, added an NILH to strip away the high byte, but it does make for an interesting question. On Mon, Nov 6, 2023 at 12:30 PM Charles Mills wrote: > > does this mean IBM has an issue in that they aren't clearing the flags > >from the DCB address when they load it for passing to the SYNAD exit, or > is > >it my responsibility to clear the high byte > > Not sure, but I can darn sure tell you what the fastest resolution would > be! > > Charles > > > On Mon, 6 Nov 2023 11:46:16 -0600, Charles Hardee < > charleshhar...@gmail.com> wrote: > > >To answer Seymour J. Metz's question first, it's specified in the DCB. > > > >To answer Charles Mills' question, the module is defined as RMODE 24, > AMODE > >ANY, so the I/O was issued in 31-bit mode. > > > >Which now rings a bell, I, too, vaguely remember that SYNAD is called in > >the A-Mode of the code issuing the I/O. > > > >So, does this mean IBM has an issue in that they aren't clearing the flags > >from the DCB address when they load it for passing to the SYNAD exit, or > is > >it my responsibility to clear the high byte before trying to use the DCB > >address in the low 3? > > -- > 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
Re: Addressing mode for SYNAD exit
> does this mean IBM has an issue in that they aren't clearing the flags >from the DCB address when they load it for passing to the SYNAD exit, or is >it my responsibility to clear the high byte Not sure, but I can darn sure tell you what the fastest resolution would be! Charles On Mon, 6 Nov 2023 11:46:16 -0600, Charles Hardee wrote: >To answer Seymour J. Metz's question first, it's specified in the DCB. > >To answer Charles Mills' question, the module is defined as RMODE 24, AMODE >ANY, so the I/O was issued in 31-bit mode. > >Which now rings a bell, I, too, vaguely remember that SYNAD is called in >the A-Mode of the code issuing the I/O. > >So, does this mean IBM has an issue in that they aren't clearing the flags >from the DCB address when they load it for passing to the SYNAD exit, or is >it my responsibility to clear the high byte before trying to use the DCB >address in the low 3? -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Addressing mode for SYNAD exit
To answer Seymour J. Metz's question first, it's specified in the DCB. To answer Charles Mills' question, the module is defined as RMODE 24, AMODE ANY, so the I/O was issued in 31-bit mode. Which now rings a bell, I, too, vaguely remember that SYNAD is called in the A-Mode of the code issuing the I/O. So, does this mean IBM has an issue in that they aren't clearing the flags from the DCB address when they load it for passing to the SYNAD exit, or is it my responsibility to clear the high byte before trying to use the DCB address in the low 3? C- On Mon, Nov 6, 2023 at 11:34 AM Charles Mills wrote: > My notes from 2005 seem to imply that the SYNAD exit may be called in > 31-bit mode. I think it is called in the mode under which the GET or PUT > was issued. > > Charles > > -- > 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
Re: Addressing mode for SYNAD exit
My notes from 2005 seem to imply that the SYNAD exit may be called in 31-bit mode. I think it is called in the mode under which the GET or PUT was issued. Charles -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Addressing mode for SYNAD exit
Where did you specify your SYNAD exit? What was the AMODE when you issued the GET or CHECK? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי From: IBM Mainframe Discussion List on behalf of Charles Hardee Sent: Monday, November 6, 2023 11:20 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Addressing mode for SYNAD exit Hello All, I have been under the impression for decades that SYNAD exits are called in 24-bit mode. Recently I have been having problems in one of my programs. The problem goes as follows: I am reading an input file that is defined as: //INPUTDD *,SYMBOLS=JCLONLY OUTPUT DATASET *other parameters* /* When the value of OUTDSN is long enough that the OUTPUT input statement is greater than 80 characters, my SYNAD exit is called, but in 31-bit mode. R1 is passed to the SYNAD exit but has flag settings in the upper byte followed by the 3-byte address of my DCB. Since I am now in 31-bit mode, the flag bits cause the DCB address to be unavailable and I get a S0C4 when trying to access the DCB. If I insert a "NILH R1,X'00FF'" as the first instruction of my SYNAD code, all works as before and I get a wrong length record error, rightfully so, since the input record passed by the OS is greater than 80 characters. So, after my long winded explanation, my question is, when did the calling of SYNAD exits change to 31-bit? Or am I just still living in the dark ages? Thanks, Chuck -- 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
Addressing mode for SYNAD exit
Hello All, I have been under the impression for decades that SYNAD exits are called in 24-bit mode. Recently I have been having problems in one of my programs. The problem goes as follows: I am reading an input file that is defined as: //INPUTDD *,SYMBOLS=JCLONLY OUTPUT DATASET *other parameters* /* When the value of OUTDSN is long enough that the OUTPUT input statement is greater than 80 characters, my SYNAD exit is called, but in 31-bit mode. R1 is passed to the SYNAD exit but has flag settings in the upper byte followed by the 3-byte address of my DCB. Since I am now in 31-bit mode, the flag bits cause the DCB address to be unavailable and I get a S0C4 when trying to access the DCB. If I insert a "NILH R1,X'00FF'" as the first instruction of my SYNAD code, all works as before and I get a wrong length record error, rightfully so, since the input record passed by the OS is greater than 80 characters. So, after my long winded explanation, my question is, when did the calling of SYNAD exits change to 31-bit? Or am I just still living in the dark ages? Thanks, Chuck -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN