home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / BEEHIVE / ZCAT / ROS-CLK.LBR / LEGACY.CZK / LEGACY.CLK
Text File  |  2000-06-30  |  2KB  |  61 lines

  1. { ROS.CLK - Remote Operating System Clock Routines }
  2.  
  3. { File:        LEGACY.CLK
  4.   Description: This driver set is designed to support the Legacy clock for
  5.                a Kaypro 10 (should work with other Kaypro machines as well).
  6.   Date:        5/4/85
  7.   Author:      Chris DeBracy
  8.  
  9.   Description: Comment update and code cleanup.
  10.   Date:        9/7/85
  11.   Author:      Steve Fox
  12. }
  13.  
  14. procedure GetTAD(var t: tad_array);
  15. { Return a 6 element integer array of the current system time in
  16.   seconds, minutes, hours, day, month, and year. }
  17.   const
  18.     z1 = $79;
  19.     z2 = $7B;
  20.   var
  21.     i: integer;
  22.     temp: array[0..4] of integer;
  23.     tar: array[0..12] of integer;
  24.   begin
  25.     for i := 0 to 12 do
  26.       begin
  27.         port[z1] := 0;
  28.         port[z2] := $CF;
  29.         port[z2] := 0;
  30.         port[z1] := i;
  31.         port[z1] := i + 128;
  32.         port[z1] := i;
  33.         port[z1] := $20;                    { set input mode }
  34.         port[z2] := $CF;
  35.         port[z2] := $0F;
  36.         port[z1] := $20;
  37.         tar[i] := port[z1] and $0F          { read data }
  38.       end;
  39.     val(chr(tar[1] + 48) + chr(tar[0] + 48), temp[0], i);
  40.     val(chr(tar[3] + 48) + chr(tar[2] + 48), temp[1], i);
  41.     val(chr(tar[5] + 48) + chr(tar[4] + 48), temp[2], i);
  42.     val(chr(tar[8] + 48) + chr(tar[7] + 48), temp[3], i);
  43.     val(chr(tar[10] + 48) + chr(tar[9] + 48), temp[4], i);
  44.     for i := 0 to 4 do
  45.       t[i] := temp[i];
  46.     t[5] := 85
  47.   end;
  48.  
  49. procedure SetTAD(var t: tad_array);
  50. { Set the system time using a 6 element integer array which contains
  51.   seconds, minutes, hours, day, month, and year. }
  52. begin
  53.   mem[$FF7C] := t[0];
  54.   mem[$FF7D] := t[1];
  55.   mem[$FF7E] := t[2];
  56.   mem[$FF7F] := pred(t[3]);
  57.   mem[$FF80] := pred(t[4]);
  58.   mem[$FF81] := t[5]
  59. end;
  60.  
  61.