home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c082_122 / 3.ddi / CHESS.ZIP / TIMELIB.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1992-06-10  |  1.8 KB  |  68 lines

  1. // ObjectWindows - (C) Copyright 1992 by Borland International
  2.  
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <dos.h>
  6. #include "externs.h"
  7. #include "wcdefs.h"
  8.  
  9.  
  10. void CGetTime(int *hour, int *minute, int *second, int * sec100)
  11. {
  12.     _AH = 0x2C;
  13.     geninterrupt(0x21);
  14.     *hour = _CH;
  15.     *minute = _CL;
  16.     *second = _DH;
  17.     *sec100 = _DL;
  18. }
  19.  
  20. void DisplayTime()
  21. {
  22.    int hour1, min1, sec1, s100;
  23.    static BOOL Colon = TRUE;
  24.    double CurTime = ChessTime[RunColor].totaltime;
  25.    CGetTime(&hour1, &min1, &sec1, &s100);
  26.    CurTime += ((s100 - ChessTime[RunColor].sec100) * 0.01 +
  27.          (sec1 - ChessTime[RunColor].second) +
  28.          (min1 - ChessTime[RunColor].minute) * 60.0 +
  29.          (hour1 - ChessTime[RunColor].hour) * 3600.0);
  30.    min1 = int(CurTime / 60.);
  31.    sprintf(buf, "%2.2d%s%02d", min1, (Colon) ? ":" : " ", int(CurTime - min1 * 60.0));
  32.    TInfo->SetTimerText(buf);
  33.    Colon = !Colon;
  34. }
  35.  
  36. void InitTime(CLOCKTYPE *clock)
  37. {
  38.    memset(clock, 0, sizeof(CLOCKTYPE));   
  39. }
  40.  
  41.  
  42. void StartTime(CLOCKTYPE *clock)
  43. {
  44.     CGetTime(&clock->hour, &clock->minute, &clock->second, &clock->sec100);
  45. }
  46.  
  47.  
  48. void StopTime(CLOCKTYPE *clock)
  49. {
  50.     int hour1, min1, sec1, s100;
  51.     CGetTime(&hour1, &min1, &sec1, &s100);
  52.     if (hour1 < clock->hour) hour1+=24;
  53.     clock->totalhours += (hour1 - clock->hour);
  54.     clock->totmin += (min1 - clock->minute);
  55.     clock->totalsecs += (sec1 - clock->second);
  56.     clock->tots100 += (s100 - clock->sec100);
  57.     clock->number++;
  58.     clock->totaltime = clock->totaltime + ((s100 - clock->sec100) * 0.01 +
  59.          (sec1 - clock->second) + (min1 - clock->minute) * 60.0 +
  60.          (hour1 - clock->hour) * 3600.0);
  61.     clock->hour = hour1;
  62.     clock->minute = min1;
  63.     clock->second = sec1;
  64.     clock->sec100 = s100;
  65. }
  66.  
  67.  
  68.