#include "stdio.h"


int     main()
        {
        initPort();

        cls();

        printam();

        clock();

        return(0);
        }


int     clock()
        {
        char            hours, minutes, seconds;
        char            mess[7];
        unsigned char   tmp;


        while(1)
                {
                while(1)
                        {
                        tmp = readClk(0x0A);
                        tmp &= 0x80;

                        if(tmp)
                                {
                                while(1)
                                        {
                                        tmp = readClk(0x0A);
                                        tmp &= 0x80;

                                        if(!tmp)
                                                goto dispTime;
                                        }
                                }
                        }

                dispTime:

                seconds = readClk(0x00);
                minutes = readClk(0x02);
                hours = readClk(0x04);

                mess[0] = (hours & 0xf0) >> 4;
                mess[1] = (hours & 0x0f);

                mess[2] = (minutes & 0xf0) >> 4;
                mess[3] = (minutes & 0x0f);

                mess[4] = (seconds & 0xf0) >> 4;
                mess[5] = (seconds & 0x0f);

                printp(mess);

                pause(1);
                }

        return(0);
        }


int     printam()
        {
        char    mess[7];


        pause(1);

        strcpy(mess, "  HI  ");
        printp(mess);
        pause(4);

        strcpy(mess, "ALBERT");
        printp(mess);
        pause(4);

        strcpy(mess, " WHAT ");
        printp(mess);
        pause(4);

        strcpy(mess, "  DO  ");
        printp(mess);
        pause(4);

        strcpy(mess, " YOU  ");
        printp(mess);
        pause(4);

        strcpy(mess, "THINK ");
        printp(mess);
        pause(4);

        strcpy(mess, "      ");
        printp(mess);
        pause(2);

        return(0);
        }


int     printp(str)
        char *str;
        {
        out(0x0a, str[0]);
        out(0x09, str[1]);

        out(0x08, str[2]);
        out(0x0e, str[3]);

        out(0x0d, str[4]);
        out(0x0c, str[5]);

        return(0);
        }


int     cls()
        {
        out(0x0a, ' ');
        out(0x09, ' ');

        out(0x08, ' ');
        out(0x0e, ' ');

        out(0x0d, ' ');
        out(0x0c, ' ');

        return(0);
        }


int     pause(len)
        int len;
        {
        int     i;


        while(len--)
                {
                for(i = 100000 ; i ; i--)
                        ;
                }

        return(0);
        }


int     readClk(iprt)
        char iprt;
        {
        char    byte;


        out(0x30, iprt);
        byte = in(0x31);

        return(byte);
        }


int     initPort()
        {
        out(0x0b,0x80);
        out(0x0f,0x80);

        return(0);
        }
