home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / MacMETH 3.2.1 / Sources / MacC2.6 / M2Clock.MOD < prev    next >
Encoding:
Modula Implementation  |  1992-05-29  |  1.1 KB  |  35 lines  |  [TEXT/MEDT]

  1. IMPLEMENTATION MODULE M2Clock;  (* W. Heiz, 23-Dec-85 / 23-Dec-85 *)
  2.  
  3.   FROM SYSTEM IMPORT ADDRESS, ADR, LONG, SETREG, REG, INLINE, VAL;
  4.  
  5.   TYPE
  6.     DateTimeRec = RECORD
  7.                     year:      INTEGER;
  8.                     month:     INTEGER;
  9.                     day:       INTEGER;
  10.                     hour:      INTEGER;
  11.                     minute:    INTEGER;
  12.                     second:    INTEGER;
  13.                     dayOfWeek: INTEGER;
  14.                   END;
  15.  
  16.   PROCEDURE Secs2Date(seconds: LONGINT; VAR dateAndTime: DateTimeRec);
  17.   BEGIN
  18.     SETREG(0, seconds); SETREG(8, ADR(dateAndTime)); INLINE(0A9C6H);
  19.   END Secs2Date;
  20.  
  21.   PROCEDURE SetTime(t: Time); END SetTime;
  22.  
  23.   PROCEDURE GetTime(VAR t: Time);
  24.     VAR p: POINTER TO LONGINT; dt: DateTimeRec;
  25.   BEGIN
  26.     p := VAL(ADDRESS, LONG(20CH)); Secs2Date(p^, dt);
  27.     WITH dt DO
  28.       t.day         := VAL(CARDINAL, ((year-1900)*20B + month)*40B + day);
  29.       t.minute      := VAL(CARDINAL, hour*60 + minute);
  30.       t.millisecond := VAL(CARDINAL, second*1000);
  31.     END;
  32.   END GetTime;
  33.  
  34. END M2Clock. (* Copyright Departement Informatik, ETH Zuerich, Switzerland, 1992 *)
  35.