Re: Adding 90 seconds to 8 byte TOD FIELD

2018-12-27 Thread Joseph Reichman
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

2018-12-27 Thread Peter Relson
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

2018-12-26 Thread Dan D
 SETA 24*60*60
  SETA 60*60
 SETA 1*60
ONEDAY  DC   FDS12''
ONEHOUR DC   FDS12''
ONEMINUTE   DC   FDS12''

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

2018-12-26 Thread Ed Jaffe

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:


 SETA 24*60*60
  SETA 60*60
 SETA 1*60
ONEDAY  DC   FDS12''
ONEHOUR DC   FDS12''
ONEMINUTE   DC   FDS12''

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

2018-12-26 Thread Joseph Reichman
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

2018-12-26 Thread Dan D
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

2018-12-26 Thread Joseph Reichman
=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

2018-12-26 Thread retired mainframer
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

2018-12-26 Thread Joseph Reichman
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

2018-12-26 Thread Peter Relson
>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

2018-12-25 Thread Joseph Reichman
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

2018-12-25 Thread Ed Jaffe

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

2018-12-25 Thread Paul Gilmartin
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

2018-12-25 Thread Joseph Reichman
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

2018-12-25 Thread Peter Relson
>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

2018-12-24 Thread Paul Gilmartin
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

2018-12-24 Thread Steve Smith
+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

2018-12-24 Thread Joseph Reichman
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

2018-12-24 Thread Ed Jaffe

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

2018-12-24 Thread Binyamin Dissen
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

2018-12-24 Thread Farley, Peter x23353
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