home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / compressed / development / clusterdemo.dms / clusterdemo.adf / Modules.lha / modules / txt / Timer.def < prev    next >
Text File  |  1994-05-25  |  2KB  |  81 lines

  1. |##########|
  2. |#MAGIC   #|CLABLJAN
  3. |#PROJECT #|"ImportAll"
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|xx-x-x-xx-----x-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|x-xx-x----------
  9. |##########|
  10. DEFINITION MODULE Timer;
  11. (* $A- *)
  12. FROM T_Exec    IMPORT nonstdVAL, IOCommand, IORequest, DevicePtr;
  13. FROM System    IMPORT Regs;
  14. FROM Resources IMPORT ContextPtr;
  15.  
  16. CONST
  17.   addRequest    = IOCommand( nonstdVAL + 0 );
  18.   getSysTime    = IOCommand( nonstdVAL + 1 );
  19.   setSysTime    = IOCommand( nonstdVAL + 2 );
  20.  
  21. TYPE
  22.   TimerUnits   = (microHz, vBlank, eClock, waitUntil, waitEClock);
  23.  
  24. TYPE
  25.   TimeVal      = RECORD
  26.            secs,
  27.            micro : LONGCARD;
  28.          END;
  29.   TimeValPtr   = POINTER TO TimeVal;
  30.  
  31.  
  32.   EClockVal    = RECORD
  33.            evHi  : LONGCARD;
  34.            evLo  : LONGCARD;
  35.          END;
  36.   EClockValPtr = POINTER TO EClockVal;
  37.  
  38.  
  39.   IOTimer      = RECORD OF IORequest
  40.            IF KEY : BOOLEAN
  41.              OF TRUE  THEN time   : TimeVal;
  42.              OF FALSE THEN eClock : EClockVal;
  43.            END;
  44.          END;
  45.   IOTimerPtr   = POINTER TO IOTimer;
  46.  
  47.  
  48. VAR
  49.   TimerBase    : DevicePtr;
  50.  
  51. LIBRARY TimerBase BY -42
  52.   PROCEDURE AddTime(VAR dest   IN A0,
  53.             source IN A1  : TimeVal);
  54.  
  55. LIBRARY TimerBase BY -48
  56.   PROCEDURE SubTime(VAR dest   IN A0,
  57.             source IN A1  : TimeVal);
  58.  
  59. LIBRARY TimerBase BY -54
  60.   PROCEDURE CmpTime(VAR time1 IN A0,
  61.             time2 IN A1  : TimeVal):INTEGER;
  62.  
  63. LIBRARY TimerBase BY -60
  64.   PROCEDURE ReadEClock(VAR dest IN A0 : EClockVal):LONGCARD;
  65.  
  66. LIBRARY TimerBase BY -66
  67.   PROCEDURE GetSysTime(VAR dest IN A0 : TimeVal);
  68.  
  69. PROCEDURE OpenTimer(unit    : TimerUnits;
  70.             context : ContextPtr := NIL ):IOTimerPtr;
  71.  
  72. PROCEDURE CloseTimer(VAR request : IOTimerPtr);
  73.  
  74. GROUP
  75.   All   = addRequest,getSysTime,setSysTime,TimerUnits,TimeVal,TimeValPtr,
  76.       IOTimer,IOTimerPtr,TimerBase,AddTime,SubTime,CmpTime,OpenTimer,
  77.       CloseTimer,T_Exec.ExecIOGrp;
  78.  
  79. END Timer.
  80.  
  81.