home *** CD-ROM | disk | FTP | other *** search
/ Phoenix CD 2.0 / Phoenix_CD.cdr / 15a / murutil.zip / RUNTIM.PAS < prev    next >
Pascal/Delphi Source File  |  1986-08-20  |  2KB  |  70 lines

  1. {$P256}
  2.  
  3. PROGRAM RUNTIM;
  4.  
  5. {  This Turbo Pascal program displays the run time of an event marked
  6.    by a prior call to MRKTIM.
  7.  
  8.    This routine uses the Intra-Application Communications Area memory
  9.    locations 04FA through 04FF.
  10.  
  11.    Program by Harry M. Murphy.
  12.    Version:  20 August 1986.  }
  13.  
  14.   CONST
  15.     MARK = $4B4D;  { ID code:  "MK" }
  16.  
  17.   TYPE 
  18.        REGPAK = RECORD
  19.                   AX,BX,CX,DX,BP,SI,DI,DS,ES,FL: INTEGER
  20.                 END;
  21.  
  22.   VAR 
  23.       H     : REAL;
  24.       M     : REAL;
  25.       S     : REAL;
  26.       T     : REAL;
  27.       SECNDS: REAL;
  28.       TZERO : REAL;
  29.       REG   : REGPAK;
  30.  
  31.   BEGIN
  32.     WITH REG DO
  33.       BEGIN
  34.         AX := $2C00;
  35.         MSDOS(REG);
  36.         H := HI(CX);
  37.         M := LO(CX);
  38.         S := HI(DX);
  39.         T := LO(DX)
  40.       END;
  41.     SECNDS := (H*60.0+M)*60.0+S+T/100.0;
  42.     WITH REG DO
  43.       BEGIN
  44.         DX := MEMW[0000:$04FA];
  45.         CX := MEMW[0000:$04FC];
  46.         BX := MEMW[0000:$04FE];
  47.         H := HI(CX);
  48.         M := LO(CX);
  49.         S := HI(DX);
  50.         T := LO(DX)
  51.       END;
  52.     IF REG.BX = MARK
  53.       THEN
  54.         BEGIN
  55.           SECNDS := SECNDS-((H*60.0+M)*60.0+S+T/100.0);
  56.           IF SECNDS < 0.0 THEN SECNDS := SECNDS+86400.0
  57.         END
  58.       ELSE
  59.         WRITELN('Bad or missing MRKTIM record!');
  60.     IF SECNDS < 1000.0
  61.       THEN
  62.         WRITELN('Run time =',SECNDS:7:1,' seconds.')
  63.       ELSE
  64.         IF SECNDS < 3600.0
  65.           THEN
  66.             WRITELN('Run time =',SECNDS/60.0:6:2, ' minutes.')
  67.           ELSE
  68.             WRITELN('Run time =',SECNDS/3600.0:7:3,' hours.')
  69.    END.
  70.