Subject: Re: bizarro pmax clock handling
To: Garrett D'Amore <garrett_damore@tadpole.com>
From: Garrett D'Amore <garrett_damore@tadpole.com>
List: port-pmax
Date: 09/15/2006 15:54:08
Never mind.  I found the (bizarro!) answer.  Apparently pmax PROM resets
the date if it is not 1972 or 1973.  WTF were they thinking?

    -- Garrett

Garrett D'Amore wrote:
> As far as I can tell, pmax uses a standard mc146818 clock chip.
>
> Yet, what is bizarro, is this code in inittodr (and similar in resettodr):
>
>     /*
>      * The clock lives in 1972 (leapyear!);
>      * calculate seconds relative to this year.
>      */
>     dt.dt_year = 1972;
>     dt.dt_mon = ct.mon;
>     dt.dt_day = ct.day;
>     dt.dt_hour = ct.hour;
>     dt.dt_min = ct.min;
>     dt.dt_sec = ct.sec;
>     yearsecs = clock_ymdhms_to_secs(&dt) - (72 - 70) * SECYR;
>
>     /*
>      * Take the actual year from the filesystem if possible;
>      * allow for 2 days of clock loss and 363 days of clock gain.
>      */
>     dt.dt_year = 1972; /* or MINYEAR or base/SECYR+1970 ... */
>     dt.dt_mon = 1;
>     dt.dt_day = 1;
>     dt.dt_hour = 0;
>     dt.dt_min = 0;
>     dt.dt_sec = 0;
>     for(;;) {
>         time.tv_sec = yearsecs + clock_ymdhms_to_secs(&dt);
>         if (badbase || (time.tv_sec > base - 2 * SECDAY))
>             break;
>         dt.dt_year++;
>     }
>
> I can only conjecture why this is here.  The mc146818 certainly can
> store a year.  So why are we doing this?  Is this for compatibility with
> some busted old other OS?   Ultrix?
>
> Pray tell.  Because in all other respects this looks like an otherwise
> normal mc146818 based system.  I'd much, much rather gut this weird
> code, but I would like to understand why it is here.
>
>   


-- 
Garrett D'Amore, Principal Software Engineer
Tadpole Computer / Computing Technologies Division,
General Dynamics C4 Systems
http://www.tadpolecomputer.com/
Phone: 951 325-2134  Fax: 951 325-2191