/* getMotTime.c */
static  char  SccsId[] UNUSED = "@(#)getMotTime.c	1.1  06/29/99  Spectral Dynamics" ;

/*
 * Get time from Motorola PPC
 */


#include "stdio.h"
#include "mv2600.h"
#include "vxWorks.h"

#include "time.h"
#include "timers.h"

extern UCHAR   sysNvRead(ULONG);

time_t
getMotTime(void)
{
    struct tm timeAndDate;
    unsigned char timeData[8];
    int i;

    for (i = 0; i < 8; i++)
        timeData[i] = sysNvRead((ULONG)TOD_CLOCK + i);

    timeData[0] = 0x00;

    timeAndDate.tm_sec  = (timeData[1] >> 4) * 10 + (timeData[1] & 0x0F);
    timeAndDate.tm_min  = (timeData[2] >> 4) * 10 + (timeData[2] & 0x0F);
    timeAndDate.tm_hour = (timeData[3] >> 4) * 10 + (timeData[3] & 0x0F);
    timeAndDate.tm_mday = (timeData[5] >> 4) * 10 + (timeData[5] & 0x0F);
    timeAndDate.tm_mon  = (timeData[6] >> 4) * 10 + (timeData[6] & 0x0F) - 1;
    timeAndDate.tm_year = (timeData[7] >> 4) * 10 + (timeData[7] & 0x0F);

    /* don't start introducing Y2K bugs now ... */
    if (timeAndDate.tm_year < 70)
        timeAndDate.tm_year += 100;

    timeAndDate.tm_isdst = -1;

    timeData[0] = 0x00;

    return mktime(&timeAndDate);
}



