home *** CD-ROM | disk | FTP | other *** search
- OPT MODULE
- OPT EXPORT
-
- MODULE 'exec/io',
- 'timer','devices/timer',
- 'utility','utility/date'
-
- ENUM ERR_UTILITY,ERR_TIMER
-
- OBJECT time
- tr:PTR TO timerequest,
- tv:PTR TO timeval,
- clockdata:PTR TO clockdata,
- timeropen,
- secs,
- started
- ENDOBJECT
-
- PROC time() OF time HANDLE
- IF (utilitybase:=OpenLibrary('utility.library',37))=0 THEN Raise(ERR_UTILITY)
- NEW self.tr,self.tv,self.clockdata
- IF (OpenDevice('timer.device',UNIT_VBLANK,self.tr,0))<>0 THEN Raise(ERR_TIMER)
- self.timeropen:=TRUE
- timerbase:=self.tr.io.device
- self.started:=FALSE
- EXCEPT
- SELECT exception
- CASE ERR_UTILITY
- PrintF('time.time() - Couldn''t open utility.library.\n')
- CASE ERR_TIMER
- PrintF('time.time() - Couldn''t open timer.device.\n')
- ENDSELECT
- ENDPROC
-
- PROC start() OF time
- GetSysTime(self.tv)
- self.secs:=self.tv.secs
- self.started:=TRUE
- ENDPROC
-
- PROC stop() OF time
- GetSysTime(self.tv)
- Amiga2Date(self.tv.secs-self.secs,self.clockdata)
- ENDPROC self.clockdata.hour,self.clockdata.min,self.clockdata.sec
-
- PROC end() OF time
- IF self.timeropen THEN CloseDevice(self.tr)
- END self.tr,self.tv,self.clockdata
- IF utilitybase THEN CloseLibrary(utilitybase)
- ENDPROC
-