{->>>>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;