home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Pascal / HISOFTPASCAL2,0-2.DMS / in.adf / Units / Timer.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-05-20  |  1.1 KB  |  85 lines

  1. unit Timer;
  2.  
  3. INTERFACE
  4. uses Exec;
  5.  
  6.  
  7. type
  8.     ptimeval = ^ttimeval;
  9.     ttimeval = record
  10.         tv_secs: long;
  11.         tv_micro: long;
  12.         end;
  13.  
  14.     ptimerequest = ^ttimerequest;
  15.     ttimerequest = record
  16.         tr_node: tIORequest;
  17.         tr_time: ttimeval;
  18.         end;
  19.  
  20.  
  21.  
  22. var
  23.     TimerBase: pLibrary;
  24.  
  25.  
  26. const
  27.     TR_ADDREQUEST = 9;
  28.     TR_GETSYSTIME = $A;
  29.     TR_SETSYSTIME = $B;
  30.     UNIT_MICROHZ = 0;
  31.     UNIT_VBLANK = 1;
  32.     TIMERNAME = 'timer.device';
  33.  
  34.  
  35. procedure AddTime
  36.         (dest: ptimeval;
  37.         src: ptimeval);
  38.  
  39. procedure SubTime
  40.         (dest: ptimeval;
  41.         src: ptimeval);
  42.  
  43. function CmpTime
  44.         (dest: ptimeval;
  45.         src: ptimeval): longint;
  46.  
  47.  
  48.  
  49. IMPLEMENTATION
  50. procedure AddTime; xassembler;
  51. asm
  52.     move.l    a6,-(sp)
  53.     lea        8(sp),a6
  54.     move.l    (a6)+,a1
  55.     move.l    (a6)+,a0
  56.     move.l    TimerBase,a6
  57.     jsr        -$2A(a6)
  58.     move.l    (sp)+,a6
  59. end;
  60.  
  61. procedure SubTime; xassembler;
  62. asm
  63.     move.l    a6,-(sp)
  64.     lea        8(sp),a6
  65.     move.l    (a6)+,a1
  66.     move.l    (a6)+,a0
  67.     move.l    TimerBase,a6
  68.     jsr        -$30(a6)
  69.     move.l    (sp)+,a6
  70. end;
  71.  
  72. function CmpTime; xassembler;
  73. asm
  74.     move.l    a6,-(sp)
  75.     lea        8(sp),a6
  76.     move.l    (a6)+,a1
  77.     move.l    (a6)+,a0
  78.     move.l    TimerBase,a6
  79.     jsr        -$36(a6)
  80.     move.l    d0,$10(sp)
  81.     move.l    (sp)+,a6
  82. end;
  83.  
  84. end.
  85.