home *** CD-ROM | disk | FTP | other *** search
- { TimePack - a collection of procedures related to real time clock.
- The following procedures are included :
-
- procedure getime (var hrs,min,sec,csec:integer);
- procedure Telapsed (hrs1,min1,sec1,csec1,hrs2,min2,sec2,csec2:integer;
- var Timdif:real);
- procedure BegTimer;
- ( References procedure getime. )
- procedure EndTimer;
- ( References procedures getime and Telapsed. )
-
- Source: "8087 Support: That Much Faster?", TUG Lines Volume I Issue 4
- (omitted from original article)
- Author: Richard Brush
- Application: IBM PC and true compatibles
- }
-
- { ************************************************************************* }
-
- var
- hrs1,min1,sec1,csec1,hrs2,min2,sec2,csec2:integer;
- TimDif:real;
-
- { ************************************************************************* }
-
- procedure getime (var hrs,min,sec,csec:integer);
- { gets time of day in hours, minutes, seconds and hundredths.
- Makes call to MS_Dos operating system. }
-
- type RegSet=record
- ax,bx,cx,dx,bp,si,di,ds,es,flags:integer;
- end {record};
- var
- registers:RegSet;
-
- begin {getime}
- with registers do
- begin
- ax:=$2C00;
- MsDos (registers);
- hrs:=Hi(cx);
- min:=Lo(cx);
- sec:=Hi(dx);
- csec:=Lo(dx);
- end {with};
- end {getime};
-
- { ************************************************************************* }
-
- procedure Telapsed (hrs1,min1,sec1,csec1,hrs2,min2,sec2,csec2:integer;
- var Timdif:real);
- { calc and write time difference}
-
- begin {Telapsed}
- TimDif:=((hrs2-hrs1)*60+(min2-min1))*60+(sec2-sec1)+(csec2-csec1)/100;
- writeln (' start time was ',hrs1:2,':',min1:2,':',sec1:2,'.',csec1:2);
- writeln (' stop time was ',hrs2:2,':',min2:2,':',sec2:2,'.',csec2:2);
- writeln (' elapsed time was',TimDif:11:2);
- end {Telapsed};
-
- { ************************************************************************* }
-
- procedure BegTimer;
- { Gets starting time from real time clock. References procedure getime. }
-
- begin
- getime (hrs1,min1,sec1,csec1);
- end {BegTimer};
-
- { ************************************************************************* }
-
- procedure EndTimer;
- { Gets stop time from real time clock, and prints time difference.
- References procedures getime and Telapsed. }
-
- begin
- getime (hrs2,min2,sec2,csec2);
- Telapsed (hrs1,min1,sec1,csec1,hrs2,min2,sec2,csec2,TimDif);
- end {EndTimer};
-
- { ************************************************************************* }