/*
 * terminal.c
 * use terminal for displaying clock
 * Copyright (c) 1999 by Wichit Sirichote
 * compiled with Dunfield Micro-C for 8051 Release 3.2
 * c:\mc\cc51 terminal -i h=c:\mc m=t
 */

#include c:\mc\8051io.h  /* include i/o header file */
#include c:\mc\8051reg.h

extern register char cputick;

unsigned register char sec100,sec,min,hour,flag1;


main()
{
          flag1 = 0;
          hour = 17;
          min = 59;
          sec = 0;
          serinit(9600);
          while(1){
                while(cputick <10)
                ;
                cputick = 0;
                time();
                printtime();
          }
}

time ()
/* update real-time clock  */
{
   sec100++;
   if (sec100 >= 10)  /* 100 * 10 ms = 1 s */
   {sec100 = 0;
    flag1 |= 0x01;   /* set bit 0 */
    sec++;
    if (sec >= 60)
    {sec = 0;
     flag1 |= 0x02; /* set bit 1 */
     min++;
     if (min >= 60)
     {min = 0;
     hour++;
     if (hour >= 24)
     {hour = 0;

    }
  }
 }
}
}

printtime()
{
        if ((flag1 & 0x01) != 0)
        {
        printf("\n %02u:%02u:%02u",hour,min,sec);
        flag1 &= ~0x01;
        }
}

