
/* main.c */
void dispatch(When_list ws);
int main(int argc, char *argv[]);
/* object.c */
void Obj_DefaultDestructor(Object *object);
void Obj_DefaultCreator(Object *object);
void Do_Obj_CreateList(List *list);
void Do_Obj_Init(Object *object);
void Do_Obj_Delete(Object *object);
void Do_Obj_Remove(List *list, Object *object);
void Do_Obj_Insert(List *list, Object *object, int action);
void Do_Obj_InsertAfter(List *list, Object *p_object, Object *object);
void Do_Obj_DeleteList(List *list);
void Obj_ListDestructor(List *list);
/* when.c */
int El_inlist(El_list l, int i);
void El_add(El_list l, int i);
void When_creator(When w);
void When_destructor(When w);
Daytime timeval_to_daytime(struct timeval tv);
Daytime now(void);
void dt_add(Daytime *dt, int secs);
struct timeval timeval_from_daytime(Daytime dt);
struct timeval nearest_when(When w);
void Fill_when(When w);
void Fill_whens(When_list l);
void Resort_whens(When_list l);
/* util.c */
double timevaltod(struct timeval tv);
struct timeval dtotimeval(double d);
char *timeval_to_asc(struct timeval tv);
/* lcd.c */
void jmp(void);
void OUT(unsigned char d, int p);
unsigned char IN(int p);
unsigned char *bin(int v);
int lcd_mapbut(unsigned char a);
int lcd_readbuts_worker(Lcd l);
int lcd_readbuts(Lcd l);
int lcd_wait_for_but(Lcd l);
void lcd_wr_blind(Lcd l, unsigned char d, int a);
void delay(void);
void wait_busy(Lcd l);
void lcd_wr(Lcd l, unsigned char d, int a);
void lcd_wr_buf(Lcd l, unsigned char *d, int len);
void lcd_wr_str(Lcd l, unsigned char *d);
unsigned char init_byte(Lcd l);
void lcd_pos(Lcd l, int x, int y);
void lcd_cls(Lcd l);
void lcd_emode_ctl(Lcd l, int dir, int follow);
void lcd_dpy_ctrl(Lcd l, int onoff, int curs, int blink);
void lcd_reset(Lcd l);
int probe_port(Lcd l);
void check_bidir(Lcd l);
Lcd lcd_open(struct Lcd_struct ls);
void lcd_close(Lcd l);
int lcd_printf(Lcd l, char *format, ...);
