home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / TURBOPAS / TP-UTIL.ARK / GETTIME.SRC < prev    next >
Text File  |  1986-01-06  |  2KB  |  53 lines

  1. {->>>>GetTime<<<<----------------------------------------------}
  2. {                                                              }
  3. { Filename: GETTIME.SRC -- Last Modified 10/24/85              }
  4. {                                                              }
  5. { This routine returns the current system time through DOS     }
  6. { call $2C.  It requires a prior definition of type TimeRec:   }
  7. {                                                              }
  8. {     TimeRec = RECORD                                         }
  9. {                 TimeComp   : Integer;                        }
  10. {                 TimeString : String80;                       }
  11. {                 Hours,Minutes,Seconds,Hundredths : Integer   }
  12. {               END;                                           }
  13. {--------------------------------------------------------------}
  14.  
  15. PROCEDURE GetTime(VAR TimeNow : TimeRec);
  16.  
  17. TYPE
  18.   String5 = String[5];
  19.   Reg     = RECORD
  20.               CASE Boolean OF
  21.                 False : (Word : Integer);
  22.                 True  : (LoByte,HiByte : Byte)
  23.             END;
  24.  
  25.   Regpack = RECORD
  26.               AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags : Reg
  27.             END;
  28.  
  29. VAR
  30.   I           : Integer;
  31.   Temp1,Temp2 : String5;
  32.   AMPM        : Char;
  33.   Regs        : RegPack;
  34.  
  35. BEGIN
  36.   Regs.AX.HiByte := $2C; MSDOS(Regs);
  37.   WITH TimeNow DO
  38.     BEGIN
  39.       Hours := Regs.CX.HiByte; Minutes := Regs.CX.LoByte;
  40.       Seconds := Regs.DX.HiByte; Hundredths := Regs.DX.LoByte;
  41.       IF Hours > 12 THEN
  42.         BEGIN
  43.           I := Hours - 12;
  44.           AMPM := 'p'
  45.         END
  46.       ELSE AMPM := 'a';
  47.       Str(I:2,Temp1); Str(Minutes,Temp2);
  48.       IF Length(Temp2) < 2 THEN Temp2 := '0' + Temp2;
  49.       TimeString := Temp1 + ':' + Temp2 + AMPM;
  50.       TimeComp := (Hours*2048) + (Minutes*32) + Seconds DIV 2
  51.     END
  52. END;
  53. ¬     ]1s■íH╠0└?üag⌠Åï≥A-w3▒)░¢~Y>r≤ç╧╛*É|°₧@f,■n|≥BDΘ%╗ë╫b4Θí