Re: Variable-Length Parameter List Attributes
On 10/18/23 13:03:27, Dave Clark wrote: All I know is that is what my Notes client generates for replies with an internet-style history. Apparently, Notes sees your post as coming from the list rather than from you. Sorry.;-) 'Way back, RFC 822 specified tie From: and Sender: headers. Alas, too many LISTSERVs and MUAs proudly break the rules. -- gil
Re: Variable-Length Parameter List Attributes
"IBM Mainframe Assembler List" wrote on 10/18/2023 02:53:47 PM: > (Why's there no "Jeremy Nicoll ... wrote" attribution line above? I was > going to trim more of the old stuff away, above, and noticed it didn't > make sense.) All I know is that is what my Notes client generates for replies with an internet-style history. Apparently, Notes sees your post as coming from the list rather than from you. Sorry.;-) Sincerely, Dave Clark -- int.ext: 91078 direct: (937) 531-6378 home: (937) 751-3300 Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: [EXTERNAL SENDER] Re: Variable-Length Parameter List Attributes
On Wed, 18 Oct 2023, at 19:39, Dave Clark wrote: > "IBM Mainframe Assembler List" wrote on > 10/18/2023 02:35:40 PM: >> On Wed, 18 Oct 2023, at 19:09, Dave Clark wrote: >> > However, the following is the solution I'm actually going with. >> >> > LAR0,SHVPARM1 GET ADDRESS OF PARM 1 >> > LAR1,SHVPARM2 GET ADDRESS OF PARM 2 >> > LAR2,SHVPARM2 GET ADDRESS OF PARM 3 >> >> Is that second reference to "SHVPARM2" just a typo? > > > No, the documentation says the 2nd and 3rd parameters should be > the same address. Don't know why but I don't question it. ;-) (Why's there no "Jeremy Nicoll ... wrote" attribution line above? I was going to trim more of the old stuff away, above, and noticed it didn't make sense.) I might then have written: LAR2,SHVPARM2 NB PARM 3 SHOULD BE SAME AS PARM 2 to reduce risk that in future someone else "corrects" the code. But maybe you've documented that somewhere else? -- Jeremy Nicoll - my opinions are my own.
Re: Variable-Length Parameter List Attributes
"IBM Mainframe Assembler List" wrote on 10/18/2023 02:48:17 PM: > The "DS" defines storage, but does not init the content. > On 10/18/2023 2:27 PM, Farley, Peter wrote: > > That’s even more clever than my suggestion! But I would use DS > > instead of DC. All you really want is the alignment after all, > > not any actual storage. Yes, the following are interchangeable because of the 0 duplication factor. But, I, too would prefer to see DS rather than DC. ;-) DC 0H DS 0H Sincerely, Dave Clark -- int.ext: 91078 direct: (937) 531-6378 home: (937) 751-3300 Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: Variable-Length Parameter List Attributes
The "DS" defines storage, but does not init the content. Steve Thompson On 10/18/2023 2:27 PM, Farley, Peter wrote: That’s even more clever than my suggestion! But I would use DS instead of DC. All you really want is the alignment after all, not any actual storage. Peter From: IBM Mainframe Assembler List On Behalf Of Steve Smith Sent: Wednesday, October 18, 2023 2:22 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Variable-Length Parameter List Attributes You can actually set LINKINST=DC,LINKOP=0H if you really like clever. sas On Wed, Oct 18, 2023 at 1:37 PM Ed Jaffe mailto:edja...@phoenixsoftware.com>> wrote: On 10/18/2023 10:14 AM, Farley, Peter wrote: Build the parameter list once using this form: CALL (15),(PARM1,PARM2,PARM2,BLOCK,PARM5),VL,MF=(E,PARMB), X LINKINST=NOPR,LINKOP='0' Nice! I remember when LINKINST was added (and have used it for both BASR and BASSM). Never thought to set it to a NOPR... -- This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system.
Re: [EXTERNAL SENDER] Re: Variable-Length Parameter List Attributes
"IBM Mainframe Assembler List" wrote on 10/18/2023 02:35:40 PM: > On Wed, 18 Oct 2023, at 19:09, Dave Clark wrote: > > However, the following is the solution I'm actually going with. > > > LAR0,SHVPARM1 GET ADDRESS OF PARM 1 > > LAR1,SHVPARM2 GET ADDRESS OF PARM 2 > > LAR2,SHVPARM2 GET ADDRESS OF PARM 3 > > Is that second reference to "SHVPARM2" just a typo? No, the documentation says the 2nd and 3rd parameters should be the same address. Don't know why but I don't question it. ;-) Sincerely, Dave Clark -- int.ext: 91078 direct: (937) 531-6378 home: (937) 751-3300 Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: Variable-Length Parameter List Attributes
On Wed, 18 Oct 2023, at 19:09, Dave Clark wrote: > However, the following is the solution I'm actually going with. > LAR0,SHVPARM1 GET ADDRESS OF PARM 1 > LAR1,SHVPARM2 GET ADDRESS OF PARM 2 > LAR2,SHVPARM2 GET ADDRESS OF PARM 3 Is that second reference to "SHVPARM2" just a typo? -- Jeremy Nicoll - my opinions are my own.
Re: Variable-Length Parameter List Attributes
That’s even more clever than my suggestion! But I would use DS instead of DC. All you really want is the alignment after all, not any actual storage. Peter From: IBM Mainframe Assembler List On Behalf Of Steve Smith Sent: Wednesday, October 18, 2023 2:22 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Variable-Length Parameter List Attributes You can actually set LINKINST=DC,LINKOP=0H if you really like clever. sas On Wed, Oct 18, 2023 at 1:37 PM Ed Jaffe mailto:edja...@phoenixsoftware.com>> wrote: > On 10/18/2023 10:14 AM, Farley, Peter wrote: > > Build the parameter list once using this form: > > > > CALL (15),(PARM1,PARM2,PARM2,BLOCK,PARM5),VL,MF=(E,PARMB), X > > LINKINST=NOPR,LINKOP='0' > > Nice! > > I remember when LINKINST was added (and have used it for both BASR and > BASSM). > > Never thought to set it to a NOPR... > -- This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system.
Re: Variable-Length Parameter List Attributes
You can actually set LINKINST=DC,LINKOP=0H if you really like clever. sas On Wed, Oct 18, 2023 at 1:37 PM Ed Jaffe wrote: > On 10/18/2023 10:14 AM, Farley, Peter wrote: > > Build the parameter list once using this form: > > > > CALL (15),(PARM1,PARM2,PARM2,BLOCK,PARM5),VL,MF=(E,PARMB), X > > LINKINST=NOPR,LINKOP='0' > > Nice! > > I remember when LINKINST was added (and have used it for both BASR and > BASSM). > > Never thought to set it to a NOPR... > >
Re: Variable-Length Parameter List Attributes
"IBM Mainframe Assembler List" wrote on 10/18/2023 01:56:58 PM: > On 10/18/23 11:49:12, Dave Clark wrote: > > ... > > The z/VSE CALL macro does not have those last two keywords. But, > > I can just code ORG *-2 after the CALL to accomplish the same thing. > > Thanks. > > > ORG or B into code generated by a macro whose source you don't > control is genuinely dangerous. Understood and I'm actually not going to use that method -- just thought it would be acceptable in this situation, only. However, the following is the solution I'm actually going with. SHVPARMB DS5F SHVPLAST EQU *-4 LAR0,SHVPARM1 GET ADDRESS OF PARM 1 LAR1,SHVPARM2 GET ADDRESS OF PARM 2 LAR2,SHVPARM2 GET ADDRESS OF PARM 3 LAR3,SHVBLOCK GET ADDRESS OF PARM 4 STM R0,R3,SHVPARMB PUT IN PARM BLOCK STR5,SHVPLAST PUT ADDRESS OF ENV. IN PARM BLOCK OISHVPLAST,X'80' FLAG LAST PARM IN THE BLOCK Sincerely, Dave Clark -- int.ext: 91078 direct: (937) 531-6378 home: (937) 751-3300 Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: Variable-Length Parameter List Attributes
Sounds like an RFE to the new VSEn owners is in order: “Please support LINKINST and LINKOP parameters to the CALL macro like z/OS CALL”. Hopefully they aren’t as reluctant or developer-resource-poor as IBM is about making useful enhancements. Peter From: IBM Mainframe Assembler List On Behalf Of Dave Clark Sent: Wednesday, October 18, 2023 1:49 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Variable-Length Parameter List Attributes "IBM Mainframe Assembler List" mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU>> wrote on 10/18/2023 01:14:13 PM: > Build the parameter list once using this form: > > CALL (15),(PARM1,PARM2,PARM2,BLOCK,PARM5),VL,MF=(E,PARMB), X >LINKINST=NOPR,LINKOP='0' The z/VSE CALL macro does not have those last two keywords. But, I can just code ORG *-2 after the CALL to accomplish the same thing. Thanks. Sincerely, Dave Clark -- This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system.
Re: Variable-Length Parameter List Attributes
On 10/18/23 11:49:12, Dave Clark wrote: ... The z/VSE CALL macro does not have those last two keywords. But, I can just code ORG *-2 after the CALL to accomplish the same thing. Thanks. ORG or B into code generated by a macro whose source you don't control is genuinely dangerous. -- gil
Re: Variable-Length Parameter List Attributes
"IBM Mainframe Assembler List" wrote on 10/18/2023 01:14:13 PM: > Build the parameter list once using this form: > > CALL (15),(PARM1,PARM2,PARM2,BLOCK,PARM5),VL,MF=(E,PARMB), X >LINKINST=NOPR,LINKOP='0' The z/VSE CALL macro does not have those last two keywords. But, I can just code ORG *-2 after the CALL to accomplish the same thing. Thanks. Sincerely, Dave Clark -- int.ext: 91078 direct: (937) 531-6378 home: (937) 751-3300 Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: Variable-Length Parameter List Attributes
On 10/18/2023 10:14 AM, Farley, Peter wrote: Build the parameter list once using this form: CALL (15),(PARM1,PARM2,PARM2,BLOCK,PARM5),VL,MF=(E,PARMB), X LINKINST=NOPR,LINKOP='0' Nice! I remember when LINKINST was added (and have used it for both BASR and BASSM). Never thought to set it to a NOPR... -- Phoenix Software International Edward E. Jaffe 831 Parkview Drive North El Segundo, CA 90245 https://www.phoenixsoftware.com/ This e-mail message, including any attachments, appended messages and the information contained therein, is for the sole use of the intended recipient(s). If you are not an intended recipient or have otherwise received this email message in error, any use, dissemination, distribution, review, storage or copying of this e-mail message and the information contained therein is strictly prohibited. If you are not an intended recipient, please contact the sender by reply e-mail and destroy all copies of this email message and do not otherwise utilize or retain this email message or any or all of the information contained therein. Although this email message and any attachments or appended messages are believed to be free of any virus or other defect that might affect any computer system into which it is received and opened, it is the responsibility of the recipient to ensure that it is virus free and no responsibility is accepted by the sender for any loss or damage arising in any way from its opening or use.
Re: Variable-Length Parameter List Attributes
On Wed, 18 Oct 2023 at 13:12, Seymour J Metz wrote: > Yes. I was going to suggest N' but I looked it up and it's not valid on > ordinary symbols. > Maybe this calls (heh) for a new attribute - perhaps R' to fetch the duplication factor. In conditional assembly this would presumably fetch the dup factor of the (required) underlying ordinary symbol. But all this stuff is so fragile that I can't think anyone's going to want to fiddle around with it in HLASM. Tony H. ___ > From: IBM Mainframe Assembler List on > behalf of Dave Clark > Sent: Wednesday, October 18, 2023 1:08 PM > To: ASSEMBLER-LIST@LISTSERV.UGA.EDU > Subject: Re: Variable-Length Parameter List Attributes > > "IBM Mainframe Assembler List" wrote on > 10/18/2023 01:04:43 PM: > > I would use CALL MF=E but you can always define a label for the OI > > into the last word of the list. > > > OK, so you're suggesting the following? ...and there isn't an > attribute to retrieve the replication factor? > > SHVPARMB DS5F > SHVPLAST EQU *-4 > > > OISHVPLAST,X'80' > > > Sincerely, > > Dave Clark >
Re: Variable-Length Parameter List Attributes
Dave, Are you trying to set/define the X'80' bit as part of the SHVPARMB definition? Or are you trying to use the assembler to tell you the byte an OI should target? If the former, you can do either of the following, keeping in mind you would need to be sure you do not negate the X'80' when you populate the list. SHVPARMB DC A(0,0,0,0,0+X'8000) If the latter, your example using SHVPLAST is what I have done at times. I have also done the following: SHVPARMB DS 5AParameter storage SHVPLGTH EQU *-SHVPARMBParameter storage length ... populate the parameters. OI SHVPARMB+SHVPLGTH-4,X'80' The nice thing about using the length as the EQU is you can use it elsewhere (the only thing about this approach is SHVPLGTH must be defined before SAVEPARM): SAVEPARM DS 0FParameter save area ORG SAVEPARM+SHVPLGTH DC ... continue with other data areas. MVC SAVEPARM(SHVPLGTH),SHVPARMB Bill Hitefield > -Original Message- > From: IBM Mainframe Assembler List > On Behalf Of Dave Clark > Sent: Wednesday, October 18, 2023 1:09 PM > To: ASSEMBLER-LIST@LISTSERV.UGA.EDU > Subject: Re: Variable-Length Parameter List Attributes > > "IBM Mainframe Assembler List" > mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU>> > wrote on > 10/18/2023 01:04:43 PM: > > I would use CALL MF=E but you can always define a label for the OI > > into the last word of the list. > > > OK, so you're suggesting the following? ...and there isn't an > attribute to > retrieve the replication factor? > > SHVPARMB DS5F > SHVPLAST EQU *-4 > > > OISHVPLAST,X'80' > > > Sincerely, > > Dave Clark > -- > int.ext: 91078 > direct: (937) 531-6378 > home: (937) 751-3300 > > Winsupply Group Services > 3110 Kettering Boulevard > Dayton, Ohio 45439 USA > (937) 294-5331 > > > > > > > * > This email message and any attachments is for use only by the named > addressee(s) and may contain confidential, privileged and/or proprietary > information. If you have received this message in error, please immediately > notify the sender and delete and destroy the message and all copies. All > unauthorized direct or indirect use or disclosure of this message is strictly > prohibited. No right to confidentiality or privilege is waived or lost by any > error in transmission. > > *
Re: Variable-Length Parameter List Attributes
I’m betting you would not see any difference in performance. Modern z machines will likely execute most of those instructions in parallel since there are no dependencies after the first LA. However, if you’re still concerned, I would code it this way: > L R15,ARXEXCOM > CALL (15),(SHVPARM1,SHVPARM2,SHVPARM2,SHVBLOCK,SHVPARM5),X > MF=(E,SHVPARMB) > DS0H > LA1,SHVPARMB > LA0,SHVPARM1 > ST0,0(0,1) > LA0,SHVPARM2 > ST0,4(0,1) > LA0,SHVPARM2 > ST0,8(0,1) > LA0,SHVBLOCK > ST0,12(0,1) > LA0,SHVPARM5 > ST0,16(0,1) > OI16(1),X'80 > BALR 14,15 ORG-2 Back up over the BALR For building your CALL list, and then use > LAR1,SHVPARMB > L R15,ARXEXCOM > BALR R14,R15 For subsequent invocations. Tom Harper Phoenix Software International Sent from my iPhone > On Oct 18, 2023, at 12:48 PM, Dave Clark wrote: > > "IBM Mainframe Assembler List" wrote on > 10/18/2023 12:15:12 PM: >> Execute version of the CALL macro with MF=(E,parm_area_name) can fix > that. > > >Well, the other issue is performance. I potentially call this > program hundreds of times. So, I can build the parameter list just once > and call it as follows: > > LAR1,SHVPARMB > L R15,ARXEXCOM > BALR R14,R15 > >Or I can call it as follows -- much less desireable. Note that > the program address is not supplied by a V-con but by an external program > vector list from REXX. That is why I have to preload R15 rather than > puting it in the CALL statement. But, I still wouldn't want a V-con > inserted into the middle of my instructions by the CALL with a branch > around it. > > L R15,ARXEXCOM > CALL (15),(SHVPARM1,SHVPARM2,SHVPARM2,SHVBLOCK,SHVPARM5),X > MF=(E,SHVPARMB) > DS0H > LA1,SHVPARMB > LA0,SHVPARM1 > ST0,0(0,1) > LA0,SHVPARM2 > ST0,4(0,1) > LA0,SHVPARM2 > ST0,8(0,1) > LA0,SHVBLOCK > ST0,12(0,1) > LA0,SHVPARM5 > ST0,16(0,1) > OI16(1),X'80 > BALR 14,15 > > > Sincerely, > > Dave Clark > -- > int.ext: 91078 > direct: (937) 531-6378 > home: (937) 751-3300 > > Winsupply Group Services > 3110 Kettering Boulevard > Dayton, Ohio 45439 USA > (937) 294-5331 > > > > > > * > This email message and any attachments is for use only by the named > addressee(s) and may contain confidential, privileged and/or proprietary > information. If you have received this message in error, please > immediately notify the sender and delete and destroy the message and all > copies. All unauthorized direct or indirect use or disclosure of this > message is strictly prohibited. No right to confidentiality or privilege > is waived or lost by any error in transmission. > * This e-mail message, including any attachments, appended messages and the information contained therein, is for the sole use of the intended recipient(s). If you are not an intended recipient or have otherwise received this email message in error, any use, dissemination, distribution, review, storage or copying of this e-mail message and the information contained therein is strictly prohibited. If you are not an intended recipient, please contact the sender by reply e-mail and destroy all copies of this email message and do not otherwise utilize or retain this email message or any or all of the information contained therein. Although this email message and any attachments or appended messages are believed to be free of any virus or other defect that might affect any computer system into which it is received and opened, it is the responsibility of the recipient to ensure that it is virus free and no responsibility is accepted by the sender for any loss or damage arising in any way from its opening or use.
Re: Variable-Length Parameter List Attributes
On Wed, 18 Oct 2023 at 13:11, Ed Jaffe wrote: > On 10/18/2023 9:48 AM, Dave Clark wrote: > > > > Well, the other issue is performance. I potentially call this > > program hundreds of times. So, I can build the parameter list just once > > I have used CALL to build a parameter list and do nothing else in a > manner similar to: > > CALL (15),(parm1,parm2,...parmn),VL,MF=(E,plist) > ORG *-2 > . > . (continue on -- no call is performed) > CALL actually has two keyword operands to control what link instruction is generated - LINKINST and LINKOP. So you could presumably add LINKINST=NOPR, and LINKOP=0 or the like. Just so you aren't assuming that CALL is always generating a BALR 14,15 as the very last instruction. Or to be perverse, LINKINST=ORG,LINKOP=*-2 . :-) Tony H.
Re: Variable-Length Parameter List Attributes
Build the parameter list once using this form: CALL (15),(PARM1,PARM2,PARM2,BLOCK,PARM5),VL,MF=(E,PARMB), X LINKINST=NOPR,LINKOP='0' Which generates this code: + DS0H + LA1,PARMB LOAD PARAMETER REG 1 + LA0,PARM1PICKUP PARAMETER + ST0,0(0,1) STORE INTO PARAM. LIST + LA0,PARM2PICKUP PARAMETER + ST0,4(0,1) STORE INTO PARAM. LIST + LA0,PARM2PICKUP PARAMETER + ST0,8(0,1) STORE INTO PARAM. LIST + LA0,BLOCKPICKUP PARAMETER + ST0,12(0,1) STORE INTO PARAM. LIST + LA0,PARM5PICKUP PARAMETER + ST0,16(0,1) STORE INTO PARAM. LIST + OI16(1),X'80'SET LAST WORD BIT ON @G860P40 + NOPR 0 The only extra cost is the “NOPR 0” at the end, but since you do it only once that shouldn’t be an issue. Then you can use your 3-instruction sequence to actually do the CALL as many times as you need. Peter From: IBM Mainframe Assembler List On Behalf Of Dave Clark Sent: Wednesday, October 18, 2023 12:48 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Variable-Length Parameter List Attributes "IBM Mainframe Assembler List" mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU>> wrote on 10/18/2023 12:15:12 PM: > Execute version of the CALL macro with MF=(E,parm_area_name) can fix that. Well, the other issue is performance. I potentially call this program hundreds of times. So, I can build the parameter list just once and call it as follows: LAR1,SHVPARMB L R15,ARXEXCOM BALR R14,R15 Or I can call it as follows -- much less desireable. Note that the program address is not supplied by a V-con but by an external program vector list from REXX. That is why I have to preload R15 rather than puting it in the CALL statement. But, I still wouldn't want a V-con inserted into the middle of my instructions by the CALL with a branch around it. L R15,ARXEXCOM CALL (15),(SHVPARM1,SHVPARM2,SHVPARM2,SHVBLOCK,SHVPARM5),X MF=(E,SHVPARMB) DS0H LA1,SHVPARMB LA0,SHVPARM1 ST0,0(0,1) LA0,SHVPARM2 ST0,4(0,1) LA0,SHVPARM2 ST0,8(0,1) LA0,SHVBLOCK ST0,12(0,1) LA0,SHVPARM5 ST0,16(0,1) OI16(1),X'80 BALR 14,15 Sincerely, Dave Clark -- This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system.
Re: Variable-Length Parameter List Attributes
Yes. I was going to suggest N' but I looked it up and it's not valid on ordinary symbols. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי From: IBM Mainframe Assembler List on behalf of Dave Clark Sent: Wednesday, October 18, 2023 1:08 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Variable-Length Parameter List Attributes "IBM Mainframe Assembler List" wrote on 10/18/2023 01:04:43 PM: > I would use CALL MF=E but you can always define a label for the OI > into the last word of the list. OK, so you're suggesting the following? ...and there isn't an attribute to retrieve the replication factor? SHVPARMB DS5F SHVPLAST EQU *-4 OISHVPLAST,X'80' Sincerely, Dave Clark -- int.ext: 91078 direct: (937) 531-6378 home: (937) 751-3300 Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: Variable-Length Parameter List Attributes
On Wed, 18 Oct 2023 at 12:48, Dave Clark wrote: > [...] > Well, the other issue is performance. I potentially call this > program hundreds of times. So, I can build the parameter list just once > and call it as follows: > > LAR1,SHVPARMB > L R15,ARXEXCOM > BALR R14,R15 > > Or I can call it as follows -- much less desireable. Note that > the program address is not supplied by a V-con but by an external program > vector list from REXX. That is why I have to preload R15 rather than > puting it in the CALL statement. But, I still wouldn't want a V-con > inserted into the middle of my instructions by the CALL with a branch > around it. > > L R15,ARXEXCOM > CALL (15),(SHVPARM1,SHVPARM2,SHVPARM2,SHVBLOCK,SHVPARM5),X > MF=(E,SHVPARMB) > DS0H > LA1,SHVPARMB > LA0,SHVPARM1 > ST0,0(0,1) > LA0,SHVPARM2 > ST0,4(0,1) > LA0,SHVPARM2 > ST0,8(0,1) > LA0,SHVBLOCK > ST0,12(0,1) > LA0,SHVPARM5 > ST0,16(0,1) > OI16(1),X'80 > BALR 14,15 > The CALL macro is smart enough to load the addresses into some range of R14-R1, and then issue an STM to put up to four values into the arg list. If there are more than four then it starts over. Tony H.
Re: Variable-Length Parameter List Attributes
On 10/18/2023 9:48 AM, Dave Clark wrote: Well, the other issue is performance. I potentially call this program hundreds of times. So, I can build the parameter list just once I have used CALL to build a parameter list and do nothing else in a manner similar to: CALL (15),(parm1,parm2,...parmn),VL,MF=(E,plist) ORG *-2 . . (continue on -- no call is performed) . -- Phoenix Software International Edward E. Jaffe 831 Parkview Drive North El Segundo, CA 90245 https://www.phoenixsoftware.com/ This e-mail message, including any attachments, appended messages and the information contained therein, is for the sole use of the intended recipient(s). If you are not an intended recipient or have otherwise received this email message in error, any use, dissemination, distribution, review, storage or copying of this e-mail message and the information contained therein is strictly prohibited. If you are not an intended recipient, please contact the sender by reply e-mail and destroy all copies of this email message and do not otherwise utilize or retain this email message or any or all of the information contained therein. Although this email message and any attachments or appended messages are believed to be free of any virus or other defect that might affect any computer system into which it is received and opened, it is the responsibility of the recipient to ensure that it is virus free and no responsibility is accepted by the sender for any loss or damage arising in any way from its opening or use.
Re: Variable-Length Parameter List Attributes
"IBM Mainframe Assembler List" wrote on 10/18/2023 01:04:43 PM: > I would use CALL MF=E but you can always define a label for the OI > into the last word of the list. OK, so you're suggesting the following? ...and there isn't an attribute to retrieve the replication factor? SHVPARMB DS5F SHVPLAST EQU *-4 OISHVPLAST,X'80' Sincerely, Dave Clark -- int.ext: 91078 direct: (937) 531-6378 home: (937) 751-3300 Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: Variable-Length Parameter List Attributes
I would use CALL MF=E but you can always define a label for the OI into the last word of the list. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי From: IBM Mainframe Assembler List on behalf of Dave Clark Sent: Wednesday, October 18, 2023 11:53 AM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Variable-Length Parameter List Attributes I have a definition such as the following. SHVPARMB DS5F However, the program I am calling will actually accept 4, 5, or 6 parameters in this list. So, I believe that T' will return F and L' will return 4, but is there any attribute that will return the 5 in the above definition? I ask, because I would rather not hardcode the following to set the end flag for the list. OISHVPARMB+(5*4-4),X'80' Sincerely, Dave Clark -- int.ext: 91078 direct: (937) 531-6378 home: (937) 751-3300 Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: Variable-Length Parameter List Attributes
"IBM Mainframe Assembler List" wrote on 10/18/2023 12:15:12 PM: > Execute version of the CALL macro with MF=(E,parm_area_name) can fix that. Well, the other issue is performance. I potentially call this program hundreds of times. So, I can build the parameter list just once and call it as follows: LAR1,SHVPARMB L R15,ARXEXCOM BALR R14,R15 Or I can call it as follows -- much less desireable. Note that the program address is not supplied by a V-con but by an external program vector list from REXX. That is why I have to preload R15 rather than puting it in the CALL statement. But, I still wouldn't want a V-con inserted into the middle of my instructions by the CALL with a branch around it. L R15,ARXEXCOM CALL (15),(SHVPARM1,SHVPARM2,SHVPARM2,SHVBLOCK,SHVPARM5),X MF=(E,SHVPARMB) DS0H LA1,SHVPARMB LA0,SHVPARM1 ST0,0(0,1) LA0,SHVPARM2 ST0,4(0,1) LA0,SHVPARM2 ST0,8(0,1) LA0,SHVBLOCK ST0,12(0,1) LA0,SHVPARM5 ST0,16(0,1) OI16(1),X'80 BALR 14,15 Sincerely, Dave Clark -- int.ext: 91078 direct: (937) 531-6378 home: (937) 751-3300 Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: Variable-Length Parameter List Attributes
Execute version of the CALL macro with MF=(E,parm_area_name) can fix that. From: IBM Mainframe Assembler List On Behalf Of Dave Clark Sent: Wednesday, October 18, 2023 12:09 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Variable-Length Parameter List Attributes "IBM Mainframe Assembler List" mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU>> wrote on 10/18/2023 11:56:55 AM: > Why not use the CALL macro with the VL parameter to mark the end of the list? Because I don't appreciate the in-line parameter list it generates. Sincerely, Dave Clark -- This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system.
Re: Variable-Length Parameter List Attributes
On 10/18/23 09:53:35, Dave Clark wrote: SHVPARMB DS 5F However, the program I am calling will actually accept 4, 5, or 6 parameters in this list. So, I believe that T' will return F and L' will return 4, but is there any attribute that will return the 5 in the above definition? I ask, because I would rather not hardcode the following to set the end flag for the list. OI SHVPARMB+(5*4-4),X'80' I'd code: SHVPARMB DS5F Is this hard coded? endPARMB EQU * Then: OIENDPARMB-4,X'80' -- gil
Re: Variable-Length Parameter List Attributes
"IBM Mainframe Assembler List" wrote on 10/18/2023 11:56:55 AM: > Why not use the CALL macro with the VL parameter to mark the end of the list? Because I don't appreciate the in-line parameter list it generates. Sincerely, Dave Clark -- int.ext: 91078 direct: (937) 531-6378 home: (937) 751-3300 Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: Variable-Length Parameter List Attributes
Dave, Why not use the CALL macro with the VL parameter to mark the end of the list? Sincerely, Tom Harper Phoenix Software International Sent from my iPhone > On Oct 18, 2023, at 11:53 AM, Dave Clark wrote: > > I have a definition such as the following. > > SHVPARMB DS5F > >However, the program I am calling will actually accept 4, 5, or 6 > parameters in this list. So, I believe that T' will return F and L' will > return 4, but is there any attribute that will return the 5 in the above > definition? I ask, because I would rather not hardcode the following to > set the end flag for the list. > > OISHVPARMB+(5*4-4),X'80' > > > Sincerely, > > Dave Clark > -- > int.ext: 91078 > direct: (937) 531-6378 > home: (937) 751-3300 > > Winsupply Group Services > 3110 Kettering Boulevard > Dayton, Ohio 45439 USA > (937) 294-5331 > > > > * > This email message and any attachments is for use only by the named > addressee(s) and may contain confidential, privileged and/or proprietary > information. If you have received this message in error, please > immediately notify the sender and delete and destroy the message and all > copies. All unauthorized direct or indirect use or disclosure of this > message is strictly prohibited. No right to confidentiality or privilege > is waived or lost by any error in transmission. > * This e-mail message, including any attachments, appended messages and the information contained therein, is for the sole use of the intended recipient(s). If you are not an intended recipient or have otherwise received this email message in error, any use, dissemination, distribution, review, storage or copying of this e-mail message and the information contained therein is strictly prohibited. If you are not an intended recipient, please contact the sender by reply e-mail and destroy all copies of this email message and do not otherwise utilize or retain this email message or any or all of the information contained therein. Although this email message and any attachments or appended messages are believed to be free of any virus or other defect that might affect any computer system into which it is received and opened, it is the responsibility of the recipient to ensure that it is virus free and no responsibility is accepted by the sender for any loss or damage arising in any way from its opening or use.
Variable-Length Parameter List Attributes
I have a definition such as the following. SHVPARMB DS5F However, the program I am calling will actually accept 4, 5, or 6 parameters in this list. So, I believe that T' will return F and L' will return 4, but is there any attribute that will return the 5 in the above definition? I ask, because I would rather not hardcode the following to set the end flag for the list. OISHVPARMB+(5*4-4),X'80' Sincerely, Dave Clark -- int.ext: 91078 direct: (937) 531-6378 home: (937) 751-3300 Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *