home *** CD-ROM | disk | FTP | other *** search
- PROGRAM RUNTIM;
-
- {$N- Don't use the numeric coprocessor.}
-
- { This Turbo Pascal V4.0 program displays the run time of an event
- marked by a prior call to MRKTIM.
-
- This routine uses the Intra-Application Communications Area memory
- locations 04FA through 04FF.
-
- For use under MSDOS Version 2.1, or later, only.
-
- Program by Harry M. Murphy, 20 August 1986.
- Updated for Turbo Pascal Version 4.0 by H.M.M. on 27 November 1987. }
-
- USES
- DOS;
-
- CONST
- MARK = $4B4D; { ID code: "MK" }
-
- VAR
- H : REAL;
- M : REAL;
- S : REAL;
- T : REAL;
- SECNDS: REAL;
- TZERO : REAL;
- REG : REGISTERS;
-
- BEGIN
- WITH REG DO
- BEGIN
- AX := $2C00;
- MSDOS(REG);
- H := HI(CX);
- M := LO(CX);
- S := HI(DX);
- T := LO(DX)
- END;
- SECNDS := (H*60.0+M)*60.0+S+T/100.0;
- WITH REG DO
- BEGIN
- DX := MEMW[0000:$04FA];
- CX := MEMW[0000:$04FC];
- BX := MEMW[0000:$04FE];
- H := HI(CX);
- M := LO(CX);
- S := HI(DX);
- T := LO(DX)
- END;
- IF REG.BX = MARK
- THEN
- BEGIN
- SECNDS := SECNDS-((H*60.0+M)*60.0+S+T/100.0);
- IF SECNDS < 0.0 THEN SECNDS := SECNDS+86400.0
- END
- ELSE
- WRITELN('Bad or missing MRKTIM record!');
- IF SECNDS < 1000.0
- THEN
- WRITELN('Run time =',SECNDS:7:1,' seconds.')
- ELSE
- IF SECNDS < 3600.0
- THEN
- WRITELN('Run time =',SECNDS/60.0:6:2, ' minutes.')
- ELSE
- WRITELN('Run time =',SECNDS/3600.0:7:3,' hours.')
- END.