home *** CD-ROM | disk | FTP | other *** search
- /* *** pause.c *** */
- /* */
- /* IBM-PC microsoft "C" under PC-DOS */
- /* */
- /* Function to cause a program to appear to pause for a given period */
- /* time. Uses the system clock for timing. Accurate to 1/100's of */
- /* a second. */
- /* */
- /* Written by L. Cuthbertson, May 1984. */
- /* */
- /*********************************************************************/
- /* */
-
- pause(seconds)
- float seconds; /* number of seconds to pause */
- {
- int ih,im,is,iths;
- long current,offset,diff;
-
- /* determine the current time */
- dostime(&ih,&im,&is,&iths);
-
- /* calculate the current time in 1/100's of a second */
- offset = (ih*360000) + (im*6000) + (is*100) + iths;
- current = offset;
-
- /* calculate the number of 1/100's of a second to pause */
- diff = seconds*100;
- if (diff > 8640000) { /* maximum of 1 day pause */
- return(-1);
- }
-
- /* keep on polling the clock until difference has elapsed */
- while ((current-offset) < diff) {
- dostime(&ih,&im,&is,&iths);
- current = (ih*360000) + (im*6000) + (is*100) + iths;
- if (current < offset) { /* spans midnight */
- current += 8640000;
- }
- }
-
- /* done */
- return(0);
-
- }