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

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

#define CODE_CLOSEWINDOW -117
#define SPECIAL_KEY (-101)
#define CSR_UP 65
#define CSR_DN 66
#define CSR_RT 67
#define CSR_LFT 68
#define TAB 9
#define BACK_SPACE 8
#define MAX 40
#define DATE_SIZE 6
#define DELETE 127
#define CLREOL "\x1b[K"
#define CLR 12
#define CSR_INVISIBLE "\x1b[0 p"
#define CSR_VISIBLE "\x1b[ p"
#define CSI "\x1b["
#define REVERSE "\x1b[7m"
#define NORMAL "\x1b[0m"
#define EXIT_FIELD "\x1b[0m\x1b[K"
#define SETUP "\x1b[3;1H"
#define HEADER "Datebook Editor From HardKore Software "
#define MENU_LINE_1 "\x1b[10;1H\x1b[K\n\x1b[K\x1b[4m   DateBook Editor \xa9 April 1987    by Robert Hardy  -  PoCo  BC        \n"
#define MENU_LINE_2 "\x1b[K\x1b[0;7m -> \x1b[0;4m  Forward    \x1b[0;7m D  \x1b[0;4m  Delete      \x1b[0;7m E  \x1b[0;4m  End          \x1b[0;7m C  \x1b[0;4m  Change    |\n"
#define MENU_LINE_3 "\x1b[K\x1b[0;7m <- \x1b[0;4m  Backward   \x1b[0;7m A  \x1b[0;4m  Add         \x1b[0;7m B  \x1b[0;4m  Beginning    \x1b[0;7m Q  \x1b[0;4m  Quit      |\x1b[0m "
#define DATE_ROW "\x1b[3;25H\x1b[4m"
#define TIME_ROW "\x1b[4;25H\x1b[4m"
#define COMMENT_ROW "\x1b[5;25H\x1b[4m"
#define WARNING_ROW "\x1b[6;25H\x1b[4m"
#define FREQ_ROW "\x1b[7;25H\x1b[4m"

void print_menu();
char get_menu();
void get_next_rec();
void get_prev_rec();
int change_rec();
void add_rec();
void clear_rec();
void print_rec();
int edit_field();

int Stccpy();

#undef getchar
#undef putchar

extern struct Window	*Init_Console();
extern unsigned int 	getchar();
extern unsigned char	constat();
extern void		putchar();
extern void		putstr();
extern void		putnstr();
extern void		Close_Console();

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