Re: Was Adding 90 seconds to 8 byte TOD FIELD
Redbooks are useful, but they are not formal documentation. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List on behalf of George Kozakos Sent: Friday, December 28, 2018 2:23 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Was Adding 90 seconds to 8 byte TOD FIELD > Is there any additional documentation on this function ? The function was documented in the z/OS Version 1 Release 11 Implementation redbook - 13.5 Cross-memory TCB and SRB WAIT Regards, George Kozakos z/OS Software Service, Level 2 Supervisor -- 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: Was Adding 90 seconds to 8 byte TOD FIELD
> Is there any additional documentation on this function ? The function was documented in the z/OS Version 1 Release 11 Implementation redbook - 13.5 Cross-memory TCB and SRB WAIT Regards, George Kozakos z/OS Software Service, Level 2 Supervisor -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Was Adding 90 seconds to 8 byte TOD FIELD
AM I to understand that this routine can be called from an SRB Routine or a Cross Memory PC Service routine to place the SRB routine in a wait-suspend for x-amount of time ? yes Is there any additional documentation on this function? no. What additional documentation would you think you would need? Is this a restricted function meaning it should not be used because it is undocumented ? No. Use it if it meets your needs. It is not "undocumented"; it is just not documented "nicely". It is documented by the comments you see for this field within the data areas book for the ECVT. ECVTXTSW is identified as being a programming interface. Peter Relson z/OS Core Technology Design -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Was Adding 90 seconds to 8 byte TOD FIELD
I have been watching this thread, as have found it interesting. And Yes I agree with others that the OP should use DSECTS/LABELS instead of hard coded displacements. . The Original Post stated they were trying to branch to the address in ECVTXTSW. . > L R15,16 GET CVT ADDRESS > L R15,X'8C'(R15) GET ECVT ADDRESS > L R15,X'384'(R15) GET ECVTXTSW ADDRESS . I looked at the IHAECVT to see the explanation of ECVTXTSW. The comments state "Address of "Cross-memory TCB or SRB wait" routine. . AM I to understand that this routine can be called from an SRB Routine or a Cross Memory PC Service routine to place the SRB routine in a wait-suspend for x-amount of time ? . Is there any additional documentation on this function ? . Is this a restricted function meaning it should not be used because it is undocumented ? . Paul . . -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
I’m sorry I got it working the fds Assembler constant had a 4 byte slack byte I am using TESTAUTH Does Dave Cole Have a Christmas sale Thanks > On Dec 27, 2018, at 9:14 AM, Peter Relson wrote: > > Joe, > > You need to invest in a debugger. Somey of the questions you ask come > from your not having the information about what your code actually does > and then the kind posters have to waste their time guessing. They should > not have to. This is information you need to provide if you want help. > > For example, at the time of the BASR 14,15, what is in register 1? And > what are the 8 bytes pointed to by register 1? > What is your state and key? > > One of the posts suggested the possibility that you ran afoul of alignment > due to your (to me, inexplicable) use of "*+" instead of a label. > If the code you posted began on a word boundary, there would have been 2 > bytes skipped. I would have guessed that that would have resulted in most > cases in a smaller time rather than a larger time, but still it is a > factor. > > For all we know, you didn't even invoke the service in the right state and > key. For all we know, you did wake up but blew up afterward. > > The simple fact is that if you are key 0 supervisor state and register 1 > points to a word addressable in your primary address space which in turn > points to an 8-character value that represents 90 STCK seconds, such as > via FDS12'90E6' you will wake up in 90 seconds. > > Peter Relson > z/OS Core Technology Design > > > -- > 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: Adding 90 seconds to 8 byte TOD FIELD
Joe, You need to invest in a debugger. Somey of the questions you ask come from your not having the information about what your code actually does and then the kind posters have to waste their time guessing. They should not have to. This is information you need to provide if you want help. For example, at the time of the BASR 14,15, what is in register 1? And what are the 8 bytes pointed to by register 1? What is your state and key? One of the posts suggested the possibility that you ran afoul of alignment due to your (to me, inexplicable) use of "*+" instead of a label. If the code you posted began on a word boundary, there would have been 2 bytes skipped. I would have guessed that that would have resulted in most cases in a smaller time rather than a larger time, but still it is a factor. For all we know, you didn't even invoke the service in the right state and key. For all we know, you did wake up but blew up afterward. The simple fact is that if you are key 0 supervisor state and register 1 points to a word addressable in your primary address space which in turn points to an 8-character value that represents 90 STCK seconds, such as via FDS12'90E6' you will wake up in 90 seconds. Peter Relson z/OS Core Technology Design -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
&SecsIn1Day SETA 24*60*60 &SecsIn1Hr SETA 60*60 &SecsIn1Min SETA 1*60 ONEDAY DC FDS12'&SecsIn1Day.E6' ONEHOUR DC FDS12'&SecsIn1Hr.E6' ONEMINUTE DC FDS12'&SecsIn1Min.E6' or just simply: NINTYSECS DC FDS12'90E6' ... Thanks Ed. I've just never seen that before. Very useful. Dan -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
On 12/26/2018 9:47 AM, Dan D wrote: I don't recall which IBM manual I found these values in but they certainly make this type of calculation easier. *TOD Values CNOP 0,8 ONEDAY DCX'000141DD7600' ONEHOUR DCX'0D693A40' ONEMINUTE DC X'00393870' ONESECOND DC X'F424' ONEMILISEC DC X'003E8000' ONEMICROSEC DC X'1000' With the above, take ONESECOND and multiply by 90 and add to TOD. LG/ALG make 8 byte calculations so much easier ;-) I still don't understand why anyone would opt for hard-coded values from a book and/or perform calculations at run time to determine constant values when the assembler will do it all for you. Example: &SecsIn1Day SETA 24*60*60 &SecsIn1Hr SETA 60*60 &SecsIn1Min SETA 1*60 ONEDAY DC FDS12'&SecsIn1Day.E6' ONEHOUR DC FDS12'&SecsIn1Hr.E6' ONEMINUTE DC FDS12'&SecsIn1Min.E6' or just simply: NINTYSECS DC FDS12'90E6' etc... -- 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. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
Hi Just ran the code under TESTAUTH I made a breakpoint at the BASR and did a L 1R?? L (8) XC it pointed to 00895440 which 90 * f424 WHAT Dan Dalby posted to be a second After the BASR I got a IKJ56640I SYSTEM ABEND CODE D23 REASON CODE FF050064 looking into it Thanks -Original Message- From: IBM Mainframe Discussion List On Behalf Of retired mainframer Sent: Wednesday, December 26, 2018 10:32 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Adding 90 seconds to 8 byte TOD FIELD Look at the assembled contents of your address literal. The * does not refer to the location of the LA instruction but the address of the literal itself. Are you sure that your DC did not skip some bytes to force doubleword alignment? If it did, your B instruction points to the wrong place. If it didn't skip for this run, are you sure it won't the next time you make a change. What is your aversion to using labels? > -Original Message- > From: IBM Mainframe Discussion List On > Behalf Of Joseph Reichman > Sent: Wednesday, December 26, 2018 5:39 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: Adding 90 seconds to 8 byte TOD FIELD > > Thanks > > I changed that however doesn't seem like I am getting out of the wait > as I put a WTO after the code and IT didn't execute > > Thanks > > WAIT ANOP > L R15,CVTPTR > USING CVT,R15 GET CVT ADDRESS > L R15,CVTECVT > DROP R15 > USING ECVT,R15 GET ECVT ADDRESS > L R15,ECVTXTSW X'384'(R15) GET > ECVTXTSW ADDRESS > LAR1,=A(*+10) PARAMTER LIST > BASR R14,R15 GO THERE > B *+12 > DCFDS12'90E6' 90 SECOND WAIT > LM15,2,SAVER > > > > > > -Original Message- > From: IBM Mainframe Discussion List On > Behalf Of Peter Relson > Sent: Wednesday, December 26, 2018 8:19 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: Adding 90 seconds to 8 byte TOD FIELD > > >LR15,16 GET CVT ADDRESS > >LR15,X'8C'(R15) GET ECVT ADDRESS > >LR15,X'384'(R15) GET ECVTXTSW ADDRESS > >LAR1,=A(*+10) PARAMTER LIST > > Macros such as IHAPSA, CVT, and IHAECVT are provided for a reason -- > so that > you don't need to hard-code offsets and in so doing make your code > less readable and less maintainable. > > Why do you avoid them? z/OS macros themselves might hard-code offsets > because we don't necessarily want to impose a requirement on the > invoker that they include other macros. But if you're writing your own > code, you should insist on imposing that requirement on yourself. > > Peter Relson > z/OS Core Technology Design > > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, send > email to lists...@listserv.ua.edu <mailto: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 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
I don't recall which IBM manual I found these values in but they certainly make this type of calculation easier. *TOD Values CNOP 0,8 ONEDAY DCX'000141DD7600' ONEHOUR DCX'0D693A40' ONEMINUTE DC X'00393870' ONESECOND DC X'F424' ONEMILISEC DC X'003E8000' ONEMICROSEC DC X'1000' With the above, take ONESECOND and multiply by 90 and add to TOD. LG/ALG make 8 byte calculations so much easier ;-) LG R1,ONESECOND MSGF R1,=F'90' ALGR1,STCKTIME Dan -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
=A(*+10) refers to the address of the 8 byte field loading that address (address of adcon ltorg) is what I think I should be doing R1 -> A(of timer field) Here is the doc 2-14 will be preserved. - On entry R1 should contain the address of a standard parameter list. The parameter list consists of a fullword that is the "address" of an 8-byte area that contains the wait time in TOD clock format. - -Original Message- From: IBM Mainframe Discussion List On Behalf Of retired mainframer Sent: Wednesday, December 26, 2018 10:32 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Adding 90 seconds to 8 byte TOD FIELD Look at the assembled contents of your address literal. The * does not refer to the location of the LA instruction but the address of the literal itself. Are you sure that your DC did not skip some bytes to force doubleword alignment? If it did, your B instruction points to the wrong place. If it didn't skip for this run, are you sure it won't the next time you make a change. What is your aversion to using labels? > -Original Message- > From: IBM Mainframe Discussion List On > Behalf Of Joseph Reichman > Sent: Wednesday, December 26, 2018 5:39 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: Adding 90 seconds to 8 byte TOD FIELD > > Thanks > > I changed that however doesn't seem like I am getting out of the wait > as I put a WTO after the code and IT didn't execute > > Thanks > > WAIT ANOP > L R15,CVTPTR > USING CVT,R15 GET CVT ADDRESS > L R15,CVTECVT > DROP R15 > USING ECVT,R15 GET ECVT ADDRESS > L R15,ECVTXTSW X'384'(R15) GET > ECVTXTSW ADDRESS > LAR1,=A(*+10) PARAMTER LIST > BASR R14,R15 GO THERE > B *+12 > DCFDS12'90E6' 90 SECOND WAIT > LM15,2,SAVER > > > > > > -Original Message- > From: IBM Mainframe Discussion List On > Behalf Of Peter Relson > Sent: Wednesday, December 26, 2018 8:19 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: Adding 90 seconds to 8 byte TOD FIELD > > >LR15,16 GET CVT ADDRESS > >LR15,X'8C'(R15) GET ECVT ADDRESS > >LR15,X'384'(R15) GET ECVTXTSW ADDRESS > >LAR1,=A(*+10) PARAMTER LIST > > Macros such as IHAPSA, CVT, and IHAECVT are provided for a reason -- > so that > you don't need to hard-code offsets and in so doing make your code > less readable and less maintainable. > > Why do you avoid them? z/OS macros themselves might hard-code offsets > because we don't necessarily want to impose a requirement on the > invoker that they include other macros. But if you're writing your own > code, you should insist on imposing that requirement on yourself. > > Peter Relson > z/OS Core Technology Design > > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, send > email to lists...@listserv.ua.edu <mailto: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 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
Look at the assembled contents of your address literal. The * does not refer to the location of the LA instruction but the address of the literal itself. Are you sure that your DC did not skip some bytes to force doubleword alignment? If it did, your B instruction points to the wrong place. If it didn't skip for this run, are you sure it won't the next time you make a change. What is your aversion to using labels? > -Original Message- > From: IBM Mainframe Discussion List On > Behalf Of Joseph Reichman > Sent: Wednesday, December 26, 2018 5:39 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: Adding 90 seconds to 8 byte TOD FIELD > > Thanks > > I changed that however doesn't seem like I am getting out of the wait as I > put a WTO after the code and IT didn't execute > > Thanks > > WAIT ANOP > L R15,CVTPTR > USING CVT,R15 GET CVT ADDRESS > L R15,CVTECVT > DROP R15 > USING ECVT,R15 GET ECVT ADDRESS > L R15,ECVTXTSW X'384'(R15) GET > ECVTXTSW ADDRESS > LAR1,=A(*+10) PARAMTER LIST > BASR R14,R15 GO THERE > B *+12 > DCFDS12'90E6' 90 SECOND WAIT > LM15,2,SAVER > > > > > > -Original Message- > From: IBM Mainframe Discussion List On > Behalf Of > Peter Relson > Sent: Wednesday, December 26, 2018 8:19 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: Adding 90 seconds to 8 byte TOD FIELD > > >LR15,16 GET CVT ADDRESS > >LR15,X'8C'(R15) GET ECVT ADDRESS > >LR15,X'384'(R15) GET ECVTXTSW ADDRESS > >LAR1,=A(*+10) PARAMTER LIST > > Macros such as IHAPSA, CVT, and IHAECVT are provided for a reason -- so that > you don't need to hard-code offsets and in so doing make your code less > readable and less maintainable. > > Why do you avoid them? z/OS macros themselves might hard-code offsets > because we don't necessarily want to impose a requirement on the invoker > that they include other macros. But if you're writing your own code, you > should insist on imposing that requirement on yourself. > > Peter Relson > z/OS Core Technology Design > > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, send email > to lists...@listserv.ua.edu <mailto: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: Adding 90 seconds to 8 byte TOD FIELD
Thanks I changed that however doesn't seem like I am getting out of the wait as I put a WTO after the code and IT didn't execute Thanks WAIT ANOP L R15,CVTPTR USING CVT,R15 GET CVT ADDRESS L R15,CVTECVT DROP R15 USING ECVT,R15 GET ECVT ADDRESS L R15,ECVTXTSW X'384'(R15) GET ECVTXTSW ADDRESS LAR1,=A(*+10) PARAMTER LIST BASR R14,R15 GO THERE B *+12 DCFDS12'90E6' 90 SECOND WAIT LM15,2,SAVER -Original Message- From: IBM Mainframe Discussion List On Behalf Of Peter Relson Sent: Wednesday, December 26, 2018 8:19 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Adding 90 seconds to 8 byte TOD FIELD >LR15,16 GET CVT ADDRESS >LR15,X'8C'(R15) GET ECVT ADDRESS >LR15,X'384'(R15) GET ECVTXTSW ADDRESS >LAR1,=A(*+10) PARAMTER LIST Macros such as IHAPSA, CVT, and IHAECVT are provided for a reason -- so that you don't need to hard-code offsets and in so doing make your code less readable and less maintainable. Why do you avoid them? z/OS macros themselves might hard-code offsets because we don't necessarily want to impose a requirement on the invoker that they include other macros. But if you're writing your own code, you should insist on imposing that requirement on yourself. Peter Relson z/OS Core Technology Design -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu <mailto: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: Adding 90 seconds to 8 byte TOD FIELD
>LR15,16 GET CVT ADDRESS >LR15,X'8C'(R15) GET ECVT ADDRESS >LR15,X'384'(R15) GET ECVTXTSW ADDRESS >LAR1,=A(*+10) PARAMTER LIST Macros such as IHAPSA, CVT, and IHAECVT are provided for a reason -- so that you don't need to hard-code offsets and in so doing make your code less readable and less maintainable. Why do you avoid them? z/OS macros themselves might hard-code offsets because we don't necessarily want to impose a requirement on the invoker that they include other macros. But if you're writing your own code, you should insist on imposing that requirement on yourself. Peter Relson z/OS Core Technology Design -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
Thanks I must of done something else wrong as the code doesn't seem to come out of its wait -Original Message- From: IBM Mainframe Discussion List On Behalf Of Ed Jaffe Sent: Tuesday, December 25, 2018 6:17 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Adding 90 seconds to 8 byte TOD FIELD On 12/25/2018 9:09 AM, Joseph Reichman wrote: > I have it in a macro and will post the code > DCX'2328' 90 SECOND WAIT > LM15,2,SAVER What you have is DEAD WRONG! When you let the assembler do the work, it comes up with the following: 0055D4A8 DC FDS12'90E6' Why would you not let the assembler do the work? Why would anyone? -- 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. -- 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: Adding 90 seconds to 8 byte TOD FIELD
On 12/25/2018 9:09 AM, Joseph Reichman wrote: I have it in a macro and will post the code DCX'2328' 90 SECOND WAIT LM15,2,SAVER What you have is DEAD WRONG! When you let the assembler do the work, it comes up with the following: 0055D4A8 DC FDS12'90E6' Why would you not let the assembler do the work? Why would anyone? -- 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. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
On Tue, 25 Dec 2018 12:09:10 -0500, Joseph Reichman wrote: >Thanks > >I have it in a macro and will post the code >.WAIT ANOP > L R15,16 GET CVT ADDRESS > L R15,X'8C'(R15) GET ECVT ADDRESS > L R15,X'384'(R15) GET ECVTXTSW ADDRESS > LAR1,=A(*+10) PARAMTER LIST > BASR R14,R15 GO THERE > B *+12 > DCX'2328' 90 SECOND WAIT > LM15,2,SAVER > Looks too small. I get about 2 microseconds for that: 500 $ rexx say x2d(2328)/4096 2.19726563 say x2d(2328) 9000 -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
Thanks I have it in a macro and will post the code .WAIT ANOP L R15,16 GET CVT ADDRESS L R15,X'8C'(R15) GET ECVT ADDRESS L R15,X'384'(R15) GET ECVTXTSW ADDRESS LAR1,=A(*+10) PARAMTER LIST BASR R14,R15 GO THERE B *+12 DCX'2328' 90 SECOND WAIT LM15,2,SAVER -Original Message- From: IBM Mainframe Discussion List On Behalf Of Peter Relson Sent: Tuesday, December 25, 2018 10:11 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Adding 90 seconds to 8 byte TOD FIELD >I am using it to set a value for ECVTXTSW where I want to suspend >execution for 90 seconds Given that, you do not need to do what you are asking for. The parameter for the cross-memory TCB or SRB wait routine is an 8-byte area that contains the "wait time". By "wait time" it means "how long you want to wait", not "the time of day at which you want to be woken up". If "wait time" is overly confusing this could be changed to say "time to wait". The question that needs answering for ECVTXTSW is, instead, "how do I set up an 8-byte area that is the value representing 90 seconds in TOD clock format". The answer is to use something that will create a value that is 90 multiplied by 1 million (the number of microseconds in 90 seconds) multiplied by 4096 (2**12), the fact that in TOD clock format, one microsecond is represented by bit 51 in the 0-origin 64-bit format). Ed Jaffe's FDS12'90E6' seems like a great way to do that -- "FD" for 8-byte fixed, "S12" for 2**12, 90E6 for 90*10**6. Peter Relson z/OS Core Technology Design -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu <mailto: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: Adding 90 seconds to 8 byte TOD FIELD
>I am using it to set a value for ECVTXTSW where I want to >suspend execution for 90 seconds Given that, you do not need to do what you are asking for. The parameter for the cross-memory TCB or SRB wait routine is an 8-byte area that contains the "wait time". By "wait time" it means "how long you want to wait", not "the time of day at which you want to be woken up". If "wait time" is overly confusing this could be changed to say "time to wait". The question that needs answering for ECVTXTSW is, instead, "how do I set up an 8-byte area that is the value representing 90 seconds in TOD clock format". The answer is to use something that will create a value that is 90 multiplied by 1 million (the number of microseconds in 90 seconds) multiplied by 4096 (2**12), the fact that in TOD clock format, one microsecond is represented by bit 51 in the 0-origin 64-bit format). Ed Jaffe's FDS12'90E6' seems like a great way to do that -- "FD" for 8-byte fixed, "S12" for 2**12, 90E6 for 90*10**6. Peter Relson z/OS Core Technology Design -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
On Mon, 24 Dec 2018 17:02:05 +, Farley, Peter x23353 wrote: > >One second in clock units is X'F424'. ... >http://publibfi.boulder.ibm.com/epubs/pdf/dz9zr011.pdf > >So right after you do STCK TIME then do this to get a time 90 seconds later >(SEC90 is an 8 byte field, the same size as your TIME field): > >LLGF R14,=X'F424' >M R14,=F'90' >ST R14,SEC90 >ST R15,SEC90+4 >LG R14,TIME >AG R14,SEC90 > It's a shame that the soi-disant "High Level Assembler" for a 64-bit machine doesn't support 64-bit A-constants else that could all be: AG R14,=AL8(90*100*4096) >STGR14,TIME > >Then you can convert the binary TIME field using STCKCONV. > Beware leap seconds! (Did you want local time or GMT?) z/OS is woefully deficient in time services. It needs to be brought into the 20th Century. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
+1 A colleague about barfed when I first used one of those gnarly number specs. :-) sas On Mon, Dec 24, 2018 at 12:12 PM Ed Jaffe wrote: > On 12/24/2018 7:58 AM, Joseph Reichman wrote: > > > > Would anyone have a example of how to add 90 seconds to 8 byte TOD FIELD > > > LGR1,TODvalue Load TOD into R1 > > ALG R1,=FDS12'90E6' Add 90 seconds > > > -- > Phoenix Software International > Edward E. Jaffe > 831 Parkview Drive North > El Segundo, CA 90245 > https://www.phoenixsoftware.com/ > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
Thanks I am using it to set a value for ECVTXTSW where I want to suspend execution for 90 seconds -Original Message- From: IBM Mainframe Discussion List On Behalf Of Farley, Peter x23353 Sent: Monday, December 24, 2018 12:02 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Adding 90 seconds to 8 byte TOD FIELD Joe, One second in clock units is X'F424'. See the z/Architecture Principles of Operation for the format and contents of the CPU clock, figure 4-12 on page 4-47. The value for one second is in the chart under item 9 on page 4-52 here: http://publibfi.boulder.ibm.com/epubs/pdf/dz9zr011.pdf So right after you do STCK TIME then do this to get a time 90 seconds later (SEC90 is an 8 byte field, the same size as your TIME field): LLGF R14,=X'F424' M R14,=F'90' ST R14,SEC90 ST R15,SEC90+4 LG R14,TIME AG R14,SEC90 STGR14,TIME Then you can convert the binary TIME field using STCKCONV. HTH Peter -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Joseph Reichman Sent: Monday, December 24, 2018 10:58 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Adding 90 seconds to 8 byte TOD FIELD Hi Would anyone have a example of how to add 90 seconds to 8 byte TOD FIELD I am not sure of the format of the TOD though I do know it had the actual date but just by guessing I did the following which didn't seem to product the right results LRR8,R15ESTABLISH ADDRESSABILITY USING TESTPRGA,R8 LRR14,R13 LAR13,SAVEAREA STR14,SAVEAREA+4 STCK TIME STCKCONV STCKVAL=TIME,CONVVAL=TIMECONV,TIMETYPE=DEC, X DATETYPE=DDMM XRR2,R2 ICM R2,B'',TIME+4 A R2,=F'90' STCM R2,B'',TIME+4 STCKCONV STCKVAL=TIME,CONVVAL=TIMECONV,TIMETYPE=DEC, X DATETYPE=DDMM L R13,4(,R13) LMR14,R12,12(R13) BRR14 TIME DSXL8 TIMECONV DSCL16 -- 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. -- 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: Adding 90 seconds to 8 byte TOD FIELD
On 12/24/2018 7:58 AM, Joseph Reichman wrote: Would anyone have a example of how to add 90 seconds to 8 byte TOD FIELD LG R1,TODvalue Load TOD into R1 ALG R1,=FDS12'90E6' Add 90 seconds -- 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. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
You should read up on timer units as well as the format returned by STCKCONV. Think how you would do this in a high level language or REXX. On Mon, 24 Dec 2018 10:58:26 -0500 Joseph Reichman wrote: :>Hi :> :> :> :>Would anyone have a example of how to add 90 seconds to 8 byte TOD FIELD :> :> :> :>I am not sure of the format of the TOD though I do know it had the actual :>date but just by guessing I did the following which didn't seem to product :>the right results :> :> :> :> LRR8,R15ESTABLISH ADDRESSABILITY :> :> USING TESTPRGA,R8 :> :> LRR14,R13 :> :> LAR13,SAVEAREA :> :> STR14,SAVEAREA+4 :> :> STCK TIME :> :> STCKCONV STCKVAL=TIME,CONVVAL=TIMECONV,TIMETYPE=DEC, X :> :>DATETYPE=DDMM :> :> XRR2,R2 :> :> ICM R2,B'',TIME+4 :> :> A R2,=F'90' :> :> STCM R2,B'',TIME+4 :> :> STCKCONV STCKVAL=TIME,CONVVAL=TIMECONV,TIMETYPE=DEC, X :> :>DATETYPE=DDMM :> :> L R13,4(,R13) :> :> LMR14,R12,12(R13) :> :> BRR14 :> :> TIME DSXL8 :> :> TIMECONV DSCL16 :> :>T :> :> :>-- :>For IBM-MAIN subscribe / signoff / archive access instructions, :>send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- Binyamin Dissen http://www.dissensoftware.com Director, Dissen Software, Bar & Grill - Israel Should you use the mailblocks package and expect a response from me, you should preauthorize the dissensoftware.com domain. I very rarely bother responding to challenge/response systems, especially those from irresponsible companies. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Adding 90 seconds to 8 byte TOD FIELD
Joe, One second in clock units is X'F424'. See the z/Architecture Principles of Operation for the format and contents of the CPU clock, figure 4-12 on page 4-47. The value for one second is in the chart under item 9 on page 4-52 here: http://publibfi.boulder.ibm.com/epubs/pdf/dz9zr011.pdf So right after you do STCK TIME then do this to get a time 90 seconds later (SEC90 is an 8 byte field, the same size as your TIME field): LLGF R14,=X'F424' M R14,=F'90' ST R14,SEC90 ST R15,SEC90+4 LG R14,TIME AG R14,SEC90 STGR14,TIME Then you can convert the binary TIME field using STCKCONV. HTH Peter -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Joseph Reichman Sent: Monday, December 24, 2018 10:58 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Adding 90 seconds to 8 byte TOD FIELD Hi Would anyone have a example of how to add 90 seconds to 8 byte TOD FIELD I am not sure of the format of the TOD though I do know it had the actual date but just by guessing I did the following which didn't seem to product the right results LRR8,R15ESTABLISH ADDRESSABILITY USING TESTPRGA,R8 LRR14,R13 LAR13,SAVEAREA STR14,SAVEAREA+4 STCK TIME STCKCONV STCKVAL=TIME,CONVVAL=TIMECONV,TIMETYPE=DEC, X DATETYPE=DDMM XRR2,R2 ICM R2,B'',TIME+4 A R2,=F'90' STCM R2,B'',TIME+4 STCKCONV STCKVAL=TIME,CONVVAL=TIMECONV,TIMETYPE=DEC, X DATETYPE=DDMM L R13,4(,R13) LMR14,R12,12(R13) BRR14 TIME DSXL8 TIMECONV DSCL16 -- 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. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Adding 90 seconds to 8 byte TOD FIELD
Hi Would anyone have a example of how to add 90 seconds to 8 byte TOD FIELD I am not sure of the format of the TOD though I do know it had the actual date but just by guessing I did the following which didn't seem to product the right results LRR8,R15ESTABLISH ADDRESSABILITY USING TESTPRGA,R8 LRR14,R13 LAR13,SAVEAREA STR14,SAVEAREA+4 STCK TIME STCKCONV STCKVAL=TIME,CONVVAL=TIMECONV,TIMETYPE=DEC, X DATETYPE=DDMM XRR2,R2 ICM R2,B'',TIME+4 A R2,=F'90' STCM R2,B'',TIME+4 STCKCONV STCKVAL=TIME,CONVVAL=TIMECONV,TIMETYPE=DEC, X DATETYPE=DDMM L R13,4(,R13) LMR14,R12,12(R13) BRR14 TIME DSXL8 TIMECONV DSCL16 T -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN