home *** CD-ROM | disk | FTP | other *** search
- Type
- RegisterSet=Record Case Integer Of
- 1: (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags: Integer);
- 2: (AL,AH,BL,BH,CL,CH,DL,DH: Byte);
- End;
- Time=Record
- Hours,Min,Sec,Hundreths: Byte;
- End;
- DOW=(Sun,Mon,Tue,Wed,Thu,Fri,Sat);
- Date=Record
- Month,Day: Byte;
- Year: Integer;
- DayOfWeek: DOW;
- End;
- String2=String[2];
-
- Const
- DayName: Array [DOW] Of String[9]=
- ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
- MonName: Array [1..12] Of String[9]=
- ('January','February','March','April','May','June','July',
- 'August','September','October','November','December');
-
- Var
- Regs: RegisterSet;
-
- Procedure GetTime(Var T:Time);
-
- Begin
- With Regs,T Do
- Begin
- AH:=$2C;
- MsDos(Regs);
- Hours:=CH;
- Min:=CL;
- Sec:=DH;
- Hundreths:=DL;
- End;
- End;
-
- Procedure GetDate(Var D:Date);
-
- Begin
- With Regs,D Do
- Begin
- AH:=$2A;
- MsDos(Regs);
- Month:=DH;
- Day:=DL;
- Year:=CX;
- DayOfWeek:=DOW(AL);
- End;
- End;
-
- Function V2(I:Integer):String2;
- Begin
- V2:=Chr(48+I Div 10)+Chr(48+I Mod 10);
- End;
-
- Var
- T1: Time;
- D1: Date;
- AP: String2;
-
- Begin
- GetTime(T1);
- GetDate(D1);
- AP:='am';
- With T1 Do
- Begin
- If Hours>11 Then AP:='pm';
- Hours:=Hours Mod 12;
- If Hours=0 Then Hours:=12;
- Write(V2(Hours),':',V2(Min),':',V2(Sec),'.',V2(Hundreths),AP);
- End;
- With D1 Do WriteLn(' ',DayName[DayOfWeek],', ',MonName[Month],' ',
- V2(Day),', ',Year);
- End.
- Dos(Regs);
- Hours:=CH;
- Min:=CL;
- Sec:=DH;
- Hundreths:=DL;
- End;
- End;
-
- Procedure