
#include <stdio.h>
#include <dos.h>
#include <fcntl.h>
#include <time.h>
#include "header.h"

#ifdef DEBUG 
    #define FILENAME "Dates.dat"
#else
    #define FILENAME "s:Dates.dat"
#endif

#define CLEAN_UP1 "copy ram:datebook.temp s:Dates.dat"
#define CLEAN_UP2 "delete ram:datebook.temp"
#define TEMP_FILE_NAME "RAM:datebook.temp"
#define MAX 40
#define DATE_SIZE 6
#define YEAR_OFFSET 0
#define MONTH_OFFSET 2
#define DAY_OFFSET 4
#define CSI "\x1b["
#define CLREOL "\x1b[K"
#define REVERSE "\x1b[7m"
#define NORMAL "\x1b[0m"
#define SETUP "\x0c\n\n"
#define COL_NUM ";24H"
#define HEADER "  \x1b[4mDatebook From HardKore Software by Robert Hardy \xa9 April 1987 -  PoCo  BC"

typedef struct month_entry
{
    unsigned char len;
    unsigned char fix;
    char *Name;
} MONTHS;

MONTHS months[13] =
{
	{ 0, 0, "Invalid" },		/* 0 */
        { 31, 1, "January"  },		/* 1 */
        { 28, 4, "February" },		/* 2 */
        { 31, 4, "March"    },		/* 3 */
        { 30, 0, "April"    },		/* 4 */
        { 31, 2, "May"      },		/* 5 */
        { 30, 5, "June"     },		/* 6 */
        { 31, 0, "July"     },		/* 7 */
        { 31, 3, "August"   },		/* 8 */
        { 31, 6, "September" },		/* 9 */
        { 31, 1, "October"  },		/* 10 */
        { 30, 4, "November" },		/* 11 */
        { 31, 6, "December" }		/* 12 */
};

char *WeekName[8] =
{
     "Invalid",		/* 0 */
     "Saturday",	/* 1 */
     "Sunday",		/* 2 */
     "Monday",		/* 3 */
     "Tuesday",		/* 4 */
     "Wednesday",	/* 5 */
     "Thursday",	/* 6 */
     "Friday"		/* 7 */
};

struct Record  
{
    char date[DATE_SIZE];	/*  date of event  			  */
    char time[DATE_SIZE];	/*  time of event			  */
    char event[MAX];		/*  description of event		  */
    short warning;		/*  number of days ahead to start warning */
    short freq;			/*  days between warnings		  */
} rec;

int  Check_Event();
int  get_diff();
int  convert2digits();
void GetDate();
void print_event();
int  Open_Files();
void Close_Files();
void expand_date();

