#ifndef __ds1287_h
#define __ds1287_h

  void DS1287Init(void);
  unsigned int DS1287GetYear(void);

// register map
#define  SECONDS     0
#define  SECONDSALRM 1
#define  MINUTES     2
#define  MINUTESALRM 3
#define  HOURS       4
#define  HOURSALRM   5
#define  DOW         6
#define  DOM         7
#define  MONTH       8
#define  YEAR        9
#define  REGISTERA   10
#define  REGISTERB   11
#define  REGISTERC   12
#define  REGISTERD   13
#define  CENTURY     50

#define DS1287GetSeconds(void)  ReadMCS85( SECONDS )
#define DS1287GetMinutes(void)  ReadMCS85( MINUTES )
#define DS1287GetHours(void)    ReadMCS85( HOURS )
#define DS1287GetDOM(void)      ReadMCS85( DOM )
#define DS1287GetMonth(void)    ReadMCS85( MONTH )

#define DS1287SetSeconds(V)  WriteMCS85( SECONDS, V )
#define DS1287SetMinutes(V)  WriteMCS85( MINUTES, V )
#define DS1287SetHours(V)    WriteMCS85( HOURS, V )
#define DS1287SetDOM(V)      WriteMCS85( DOM, V )
#define DS1287SetMonth(V)    WriteMCS85( MONTH, V )

#define DS1287Ready() ((ReadMCS85(REGISTERA) && 0x80) == 0)
#define DS1287BatOK() ((ReadMCS85(REGISTERD) && 0x80) != 0)

#endif
