home *** CD-ROM | disk | FTP | other *** search
- {$P256}
-
- PROGRAM RUNTIM;
-
- { This Turbo Pascal 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.
-
- Program by Harry M. Murphy.
- Version: 20 August 1986. }
-
- CONST
- MARK = $4B4D; { ID code: "MK" }
-
- TYPE
- REGPAK = RECORD
- AX,BX,CX,DX,BP,SI,DI,DS,ES,FL: INTEGER
- END;
-
- VAR
- H : REAL;
- M : REAL;
- S : REAL;
- T : REAL;
- SECNDS: REAL;
- TZERO : REAL;
- REG : REGPAK;
-
- 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.