home *** CD-ROM | disk | FTP | other *** search
- PROGRAM DateTime; (* Cary V. Millsap 18 Jun 85 *)
-
- TYPE Registers = RECORD
- AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: INTEGER; END;
- Date = RECORD
- DayOfWeek, Year, Month, Day: INTEGER; END;
- Time = RECORD
- Hours, Minutes, Seconds, Hundredths: INTEGER; END;
-
- VAR r : Registers;
- d : Date;
- t : Time;
-
- CONST WeekSt : String[21] = 'SunMonTueWedThuFriSatSun';
- MonthSt : String[36] = 'JanFebMarAprMayJunJulAugSepOctNovDec';
-
- PROCEDURE GetDate(VAR d: Date);
- BEGIN
- r.AX:= $2A00; (*Place function number $2A (Get date) into AH*)
- MsDos (r); (*Invoke DOS interrupt $21 *)
- d.DayOfWeek:= LO(r.AX); (*Assign value of AL to d.DayOfWeek *)
- d.Year := r.CX; (*Assign value of CX to d.Year *)
- d.Month := HI(r.DX); (*Assign value of DH to d.Month *)
- d.Day := LO(r.DX); (*Assign value of DL to d.Day *)
- END;
-
- PROCEDURE GetTime(VAR t: Time);
- BEGIN
- r.AX:= $2C00; (*Place function number $2C (Get time) into AH*)
- MsDos (r); (*Invoke DOS interrupt $21 *)
- t.Hours := HI(r.CX); (*Assign value of CH to t.Hours *)
- t.Minutes := LO(r.CX); (*Assign value of CL to t.Minutes *)
- t.Seconds := HI(r.DX); (*Assign value of DH to t.Seconds *)
- t.Hundredths:= LO(r.DX); (*Assign value of DL to t.Hundredths *)
- END;
-
- BEGIN
- GetDate (d);
- WriteLn ('Date is ',Copy(WeekSt,3 * d.DayOfWeek + 1,3),d.Day:3,' ',
- Copy(MonthSt,3 * d.Month - 2,3),d.Year:5);
- GetTime (t);
- WriteLn ('Time is ',t.Hours:2, ':',t.Minutes:2, ':',
- t.Seconds:2, '.', t.Hundredths:2);
- END.