123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- {
- This file is part of the Free Pascal run time library.
- Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
- timer.device interface unit for MorphOS/PowerPC
- MorphOS port was done on a free Pegasos II/G4 machine
- provided by Genesi S.a.r.l. <www.genesi.lu>
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- {$IFNDEF FPC_DOTTEDUNITS}
- unit timer;
- {$ENDIF FPC_DOTTEDUNITS}
- interface
- {$IFDEF FPC_DOTTEDUNITS}
- uses
- Amiga.Core.Exec;
- {$ELSE FPC_DOTTEDUNITS}
- uses
- exec;
- {$ENDIF FPC_DOTTEDUNITS}
- var
- TimerBase : Pointer;
- { * timer.device definitions (V50)
- *********************************************************************
- * }
- const
- UNIT_MICROHZ = 0;
- UNIT_VBLANK = 1;
- UNIT_ECLOCK = 2;
- UNIT_WAITUNTIL = 3;
- UNIT_WAITECLOCK = 4;
- { *** V50 *** }
- UNIT_CPUCLOCK = 5;
- UNIT_WAITCPUCLOCK = 6;
- const
- TIMERNAME = 'timer.device';
- type
- PTimeVal = ^TTimeVal;
- TTimeVal = packed record
- tv_secs : DWord;
- tv_micro: DWord;
- end;
- type
- PEClockVal = ^TEClockVal;
- TEClockVal = packed record
- ev_hi: DWord;
- ev_lo: DWord;
- end;
- type
- PTimeRequest = ^TTimeRequest;
- TTimeRequest = packed record
- tr_node: TIORequest;
- tr_time: TTimeVal;
- end;
- const
- TR_ADDREQUEST = (CMD_NONSTD);
- TR_GETSYSTIME = (CMD_NONSTD + 1);
- TR_SETSYSTIME = (CMD_NONSTD + 2);
- procedure AddTime(Dest : PTimeVal location 'a0';
- Source: PTimeVal location 'a1');
- SysCall TimerBase 42;
- procedure SubTime(Dest : PTimeVal location 'a0';
- Source: PTimeVal location 'a1');
- SysCall TimerBase 48;
- function CmpTime(Dest : PTimeVal location 'a0';
- Source: PTimeVal location 'a1'): LongInt;
- SysCall TimerBase 54;
- function ReadEClock(Dest: PTimeVal location 'a0'): DWord;
- SysCall TimerBase 60;
- procedure GetSysTime(Dest: PTimeVal location 'a0');
- SysCall TimerBase 66;
- {.$include timerd.inc}
- {.$include timerf.inc}
- implementation
- begin
- end.
|