home *** CD-ROM | disk | FTP | other *** search
/ Software 2000 / Software 2000 Volume 1 (Disc 1 of 2).iso / utilities / u155.dms / in.adf / PC / SET_TIME.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1988-01-20  |  1.8 KB  |  76 lines

  1. PROGRAM Set_Time; (* read d:Time.tmp and set system time *)
  2.  
  3. TYPE string80=string[80];
  4.      register=RECORD
  5.               ax,bx,cx,dx,bp,si,di,ds,es,flags :integer;
  6.               END;
  7.  
  8. VAR  t :string80;
  9.      mt :ARRAY[1..12] OF string[3];
  10.      a :string[3];
  11.      c :char;
  12.      f :text;
  13.      n :integer;
  14.      day,month,year :integer;
  15.      hour,minute: integer;
  16.  
  17. FUNCTION hacklead(a :string80) :string80;
  18. VAR  n :integer;
  19.  
  20. begin;
  21.       while a[1]=' ' do  delete(a,1,1);
  22.       hacklead:=a;
  23. end;
  24.  
  25. FUNCTION number12(a:string80) :integer;
  26. VAR      n,m :integer;
  27. begin;
  28.       m:=0;
  29.       for n:=1 to 12 do
  30.       begin;
  31.             if mt[n]=a then m:=n;
  32.       end;
  33.       number12:=m;
  34. end;
  35.  
  36. PROCEDURE set_time(h,m :integer);
  37. VAR reg :register;
  38. BEGIN;
  39.       WITH reg DO BEGIN
  40.            ax:=$2D00; (* System call: set time *)
  41.            cx:=256 * h + m ;
  42.            dx:=0;
  43.            msdos(reg);
  44.       END;
  45. END;
  46.  
  47. PROCEDURE set_date(d,m,y :integer);
  48. VAR reg :register;
  49. BEGIN;
  50.       WITH reg DO BEGIN
  51.            ax:=$2B00; (* System call: set date *)
  52.            cx:=y + 1900 ;
  53.            dx:=m * 256 + d ;
  54.            msdos(reg);
  55.       END;
  56. END;
  57.  
  58. begin;
  59.       mt[1]:='Jan'; mt[2]:='Feb'; mt[3]:='Mar'; mt[4]:='Apr';
  60.       mt[5]:='May'; mt[6]:='Jun'; mt[7]:='Jul'; mt[8]:='Aug';
  61.       mt[9]:='Sep'; mt[10]:='Oct'; mt[11]:='Nov'; mt[12]:='Dec';
  62.  
  63.       assign(f,'d:Time1.tmp'); reset(f);
  64.       readln(f,t);
  65.       close(f); erase(f);
  66.       t:=hacklead(t); n:=pos(' ',t); delete(t,1,n);
  67.       a:=copy(t,1,2); val(a,day,n);
  68.       a:=copy(t,4,3); month:=number12(a);
  69.       a:=copy(t,8,2); val(a,year,n);
  70.       a:=copy(t,11,2); val(a,hour,n);
  71.       a:=copy(t,14,2); val(a,minute,n);
  72.       writeln(t);
  73.       writeln(day:5,month:5,year:5);
  74.       writeln(hour:5,minute:5);
  75.       Set_time(hour,minute); set_date(day,month,year);
  76. end.