home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / MURUTIL4.ZIP / RUNTIM.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1988-09-28  |  1.6 KB  |  70 lines

  1. PROGRAM RUNTIM;
  2.  
  3. {$N-  Don't use the numeric coprocessor.}
  4.  
  5. {  This Turbo Pascal V4.0 program displays the run time of  an  event
  6.    marked by a prior call to MRKTIM.
  7.  
  8.    This routine uses the Intra-Application Communications Area memory
  9.    locations 04FA through 04FF.
  10.  
  11.    For use under MSDOS Version 2.1, or later, only.
  12.  
  13.    Program by Harry M. Murphy,  20 August 1986.
  14.    Updated for Turbo Pascal Version 4.0 by H.M.M. on 27 November 1987. }
  15.  
  16. USES
  17.     DOS;
  18.  
  19. CONST
  20.     MARK = $4B4D;  { ID code:  "MK" }
  21.  
  22.   VAR
  23.       H     : REAL;
  24.       M     : REAL;
  25.       S     : REAL;
  26.       T     : REAL;
  27.       SECNDS: REAL;
  28.       TZERO : REAL;
  29.       REG   : REGISTERS;
  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.