/*------------------------------------------------------------------
  (C) Copyright 1988 by Rainer Stork,Krefelder Str.5, 4044 Kaarst 2

     Programm zum stoppen der Zeit für eine Befehlsausführung
            Auflösung beträgt 1/50 = 0,02 Sekunden

     Compilieren mit +l Option des Aztec
     Linken mit -lm32 -lc32     ( c32.lib und m32.lib )
------------------------------------------------------------------*/
#include <exec/types.h>
#include <libraries/dos.h>
#include <stdio.h>


main(argc,argv)
int argc;
char *argv[];
{
   FLOAT Zeit;
   LONG Tage,Minute,Ticks;
   struct DateStamp ds;    /*** DateStamp-Struktur für Systemzeit ***/

/*-------------- Argumente prüfen ----------------*/
   if (argc < 2)
   {
      printf("Befehl fehlt !\n");
      exit(15);
   }

   if (argc > 2)
   {
      printf("Es ist nur ein Befehl erlaubt !\n");
      printf("Befehlskette in Hochkomma einschließen.\n");
      exit(15);
   }

   if (*argv[1] == '?')
   {
      printf("\nBenutzung: z.B.    stoppuhr \"copy ram:xyz to df0:abc\"\n\n");
      exit(15);
   }

/*----------- Programm-Meldung und Befehl ausgeben ------------*/
   printf("\n\n   Stoppuhr von Rainer Stork, (C) 1988\n\n");
   printf("Befehl lautet >> %s <<\n",argv[1]);

   DateStamp(&ds);           /*** Zeit lesen ***/
   Tage   = ds.ds_Days;      /*** Tageszahl merken ***/
   Minute = ds.ds_Minute;    /*** Minuten merken ***/
   Ticks  = ds.ds_Tick;      /*** Ticks merken (1 Tick = 0,02 Sek.) ***/

   Execute(argv[1],0,0);     /*** Befehl ausführen ***/

   DateStamp(&ds);
/*-------- Zeitdifferenz in Sekunden errechnen und ausgeben ---------*/
   Zeit = ((((ds.ds_Days - Tage) * 24 * 60) + ds.ds_Minute - Minute) * 3000) + ds.ds_Tick - Ticks;
   Zeit = Zeit/50;
   printf("Zeit für Befehlsausführung = %.2f Sekunden\n",Zeit);
}
