On Thu, 24 Sep 2009 13:01:01 -0500, Chase, John <jch...@ussco.com> wrote:
. . . > >EIBDATE is, and has been long enough to be "forever", a four byte >packed-decimal field. From SDFHMAC: > >EIBDATE DS PL4 DATE IN 0CYYDDD+ FORMAT, >* where C is the century >* indicator (0=1900, 1=2000), >* YY is the year, DDD is the >* day number and '+' is the >* sign byte (positive) > I am not now, and in a former life I never was, a CICS person, but I wonder if that field really was like that "forever". It looks very much like something I have harped about previously - an example where, in my opinion, the interface definition "contract" was broken. The reason I think EIBDATE has not been like that forever, is that I suspect it is/was derived from the date as provided by the TIME SVC, which is documented as being in the format 0CYYDDDF. However, if you have a sufficiently old manual to look up the TIME macro, you will see that it was not documented like that originally. Up to the late 1980s, there was no mention of a "century indicator" - and no mention of any reserved bytes or bits either. The date as provided by the TIME macro was clearly documented as being 00YYDDDF. Long before LINKAGE=SYSTEM was added to the TIME macro, somebody decided to "enhance" the TIME macro by adding the century indicator. That was not a real good idea, as it invalidated any program that happened to depend on all of the high order byte being zero. That was the cause of a somewhat infamous Y2K problem in PL/I DATE BUILTIN function. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html