/* howlong1.0  Aztec3.6 To measure elapsed time -  needs to be run
                        twice*/

#include <intuition/intuition.h>
#include <stdio.h>
#define SEC printf("%d secs %d microsecs",seconds,micros)
#define MIN printf("%d mins ",minutes)
#define HOUR printf("%d hours ",hours)
#define CR putchar('\n')
struct IntuitionBase *IntuitionBase;
void _wb_parse() { }                /*dummy for shorter code */
void _cli_parse() { }
main() {                           /*_____declaration_______*/
  FILE *fp;
  char time[9],c,*point;
  int i;
  ULONG seconds, micros, t[2],
        minutes=0, hours=0;        /*_____initialization_____*/

  IntuitionBase = (struct IntuitionBase *)
    OpenLibrary( "intuition.library",0);
  if( IntuitionBase == NULL ){ printf("no intuition.lib \n");
    exit();}


  CurrentTime( &seconds, &micros );/*____read_sys_time______*/
  t[0]=seconds;t[1]=micros;


/*__________________________Read_Write_______________________________*/

  if ((fp = fopen("ram:xtime","r")) == NULL)    /*___first_time____*/
       { (fp = fopen("ram:xtime","w"));point=t;
            fwrite(&t,9,1,fp);
            fclose(fp);
       }
       else {fread (&t,9,1,fp);               /*___get_startime____*/

             if (micros<t[1])
                      {
                       --seconds;micros=1000000;
                      };
             seconds=seconds-t[0];           /*__compute_difference__*/
             micros=micros - t[1];
             if (seconds>60)
                      { minutes=seconds /60;
                        seconds=seconds %60;
                        if (minutes>60)
                                   { hours  =minutes /60;
                                     minutes=minutes %60;
                                     HOUR;
                                             };
                        MIN;
                      };   /*___end_seconds>60___*/
             SEC;CR;
             fclose(fp);
             unlink("ram:xtime");
            };    /*___end_else_fread___*/


  CloseLibrary( IntuitionBase );
}