Yes, 1/2 epoch windowing, which is around 71 years.
Yes, FFFFFFFFFFFFFFFF and 0000000000000000 can no longer be used for "never"
and "immediately" when a signed or windowed compare might be done. Even
without the clock comparator control register 0 bit set to do signed compares,
there may be software which is getting changed to do signed or windowed
compares. We have already started working on that in z/OS, and changing usage
of 0000000000000000 and FFFFFFFFFFFFFFFF is one if the things to deal with.
I have been using the current time from STCKF for "immediately" and current
time + almost 1/2 epoch for "distant future".
For two timestamps which are known to be within 71 years of each other (as
would be the case for two timestamps from the same IPL of a system), one
convenient technique is to change
IF Timestamp1 CompareOp Timestamp2 THEN
To
IF Signed_Of(Timestamp1 - Timestamp2) CompareOp 0 THEN
Or in assembler,
LG Rx,Timestamp1
SLG Rx,Timestamp2
LTGR Rx,Rx
Jxx somelabel where xx depends on the CompareOp
Jim Mulder
-----Original Message-----
From: IBM Mainframe Assembler List <[email protected]> On Behalf
Of Paul Gilmartin
Sent: Saturday, April 12, 2025 1:03 PM
To: [email protected]
Subject: Re: Store-Clock-Fast Facility
On 4/11/25 22:42, James Mulder wrote:
<snip!> But thanks for all that.
> This bigger concern for programs that use STCK or STCKF is the TOD clock
> wrap in September 2042. Any code that uses a logical compare (like CLC) for
> two timestamps will get the wrong result when one timestamp is before the wrap
> and the other is after. So there is a lot of code in operating systems,
> middleware, and probably applications, that needs to be changed to use a
> different comparison technique before then.
> ...
Doesn't the Clock Comparator already employ windowing? How long?
70 years? That would already impact programmers who naively use a hard-coded
x'FFFFFFFF' to mean "never" or x')00000000' to mean "immediately."
--
gil