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