home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / OB3.2D4.DMS / in.adf / Interfaces / Timer.mod < prev    next >
Encoding:
Text File  |  1992-12-17  |  1.7 KB  |  66 lines

  1. (*-------------------------------------------------------------------------*)
  2. (*                                                                         *)
  3. (*  Amiga Oberon Interface Module:                    Date: 02-Nov-92      *)
  4. (*                                                                         *)
  5. (*   © 1992 by Fridtjof Siebert                                            *)
  6. (*                                                                         *)
  7. (*-------------------------------------------------------------------------*)
  8.  
  9. MODULE Timer;
  10.  
  11. IMPORT e * := Exec;
  12.  
  13. CONST
  14. (* unit defintions *)
  15.   microHz    * = 0;
  16.   vBlank     * = 1;
  17.   eClock     * = 2;
  18.   waitUntil  * = 3;
  19.   waitEClock * = 4;
  20.  
  21.   timerName  * = "timer.device";
  22.  
  23. TYPE
  24.   TimeValPtr * = UNTRACED POINTER TO TimeVal;
  25.   TimeVal * = STRUCT
  26.     secs * : LONGINT;
  27.     micro* : LONGINT;
  28.   END;
  29.  
  30.   EClockValPtr * = UNTRACED POINTER TO EClockVal;
  31.   EClockVal * = STRUCT
  32.     hi * : LONGINT;
  33.     lo * : LONGINT;
  34.   END;
  35.  
  36.   TimeRequestPtr * = UNTRACED POINTER TO TimeRequest;
  37.   TimeRequest * = STRUCT (node * : e.IORequest)
  38.     time * : TimeVal;
  39.   END;
  40.  
  41.  
  42. CONST
  43.  
  44. (* IO_COMMAND to use for adding a timer *)
  45.   addRequest * = e.nonstd+0;
  46.   getSysTime * = e.nonstd+1;
  47.   setSysTime * = e.nonstd+2;
  48.  
  49. VAR
  50.  
  51. (*
  52.  *  You have to put a pointer to the timer.device here to use the timer
  53.  *  procedures:
  54.  *)
  55.  
  56.   base * : e.DevicePtr;
  57.  
  58. PROCEDURE AddTime    * {base,-42}(VAR dest{8},source{9}: TimeVal);
  59. PROCEDURE SubTime    * {base,-48}(VAR dest{8},source{9}: TimeVal);
  60. PROCEDURE CmpTime    * {base,-54}(VAR tv1{8} ,tv2{9}   : TimeVal): INTEGER;
  61. PROCEDURE ReadEClock * {base,-60}(VAR dest{8}: EClockVal): LONGINT;
  62. PROCEDURE GetSysTime * {base,-66}(VAR dest{8}: TimeVal);
  63.  
  64. END Timer.
  65.  
  66.