home *** CD-ROM | disk | FTP | other *** search
- {->>>>GetTime<<<<----------------------------------------------}
- { }
- { Filename: GETTIME.SRC -- Last Modified 10/24/85 }
- { }
- { This routine returns the current system time through DOS }
- { call $2C. It requires a prior definition of type TimeRec: }
- { }
- { TimeRec = RECORD }
- { TimeComp : Integer; }
- { TimeString : String80; }
- { Hours,Minutes,Seconds,Hundredths : Integer }
- { END; }
- {--------------------------------------------------------------}
-
- PROCEDURE GetTime(VAR TimeNow : TimeRec);
-
- TYPE
- String5 = String[5];
- Reg = RECORD
- CASE Boolean OF
- False : (Word : Integer);
- True : (LoByte,HiByte : Byte)
- END;
-
- Regpack = RECORD
- AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags : Reg
- END;
-
- VAR
- I : Integer;
- Temp1,Temp2 : String5;
- AMPM : Char;
- Regs : RegPack;
-
- BEGIN
- Regs.AX.HiByte := $2C; MSDOS(Regs);
- WITH TimeNow DO
- BEGIN
- Hours := Regs.CX.HiByte; Minutes := Regs.CX.LoByte;
- Seconds := Regs.DX.HiByte; Hundredths := Regs.DX.LoByte;
- IF Hours > 12 THEN
- BEGIN
- I := Hours - 12;
- AMPM := 'p'
- END
- ELSE AMPM := 'a';
- Str(I:2,Temp1); Str(Minutes,Temp2);
- IF Length(Temp2) < 2 THEN Temp2 := '0' + Temp2;
- TimeString := Temp1 + ':' + Temp2 + AMPM;
- TimeComp := (Hours*2048) + (Minutes*32) + Seconds DIV 2
- END
- END;