home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 December / simtel1292_SIMTEL_1292_Walnut_Creek.iso / msdos / at / datefix.arc / DATEFIX.3TP next >
Text File  |  1987-12-01  |  1KB  |  59 lines

  1. program datefix;
  2.  
  3. type
  4.   regpack = record
  5.               case integer of
  6.                 1: (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags : integer);
  7.                 2: (AL,AH,BL,BH,CL,CH,DL,DH : byte);
  8.             end;
  9.  
  10. var
  11.   regs: regpack;
  12.   month,day,hour,minute,second : byte;
  13.   year :integer;
  14.  
  15. function dec(bcd:byte):byte;
  16. var h,l : byte;
  17. begin
  18.   h   := trunc(bcd/16);
  19.   l   := bcd-h*16;
  20.   dec := 10*h+l;
  21. end;
  22.  
  23. begin
  24.   with regs do
  25.   begin
  26.     {read time from AT clock}
  27.     AH := $02;
  28.     intr($1A,regs);
  29.     hour    := dec(CH);
  30.     minute  := dec(CL);
  31.     second  := dec(DH);
  32.  
  33.     {read date from AT clock}
  34.     AH := $04;
  35.     intr($1A,regs);
  36.     day     := dec(DL);
  37.     month   := dec(DH);
  38.     year    := dec(CL)+100*dec(CH);
  39.  
  40.     {set DOS time}
  41.     AH := $2D;
  42.     CH := hour;
  43.     CL := minute;
  44.     DH := second;
  45.     DL := $00;
  46.     msdos(regs);
  47.  
  48.     {set DOS date}
  49.     AH := $2B;
  50.     CX := year;
  51.     DH := month;
  52.     DL := day;
  53.     msdos(regs);
  54.  
  55. {    writeln (hour,':',minute,':',second);
  56.     writeln(month,'/',day,'/',year);
  57. }  end;
  58. end.
  59.