home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #6 / amigaacscoverdisc1998-061998.iso / games / descent / source / bios / timer.h < prev    next >
Text File  |  1998-06-08  |  4KB  |  103 lines

  1. /*
  2. THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  3. SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
  4. END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  5. ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  6. IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  7. SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  8. FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  9. CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
  10. AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
  11. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  12. */
  13. /*
  14.  * $Source: f:/miner/source/bios/rcs/timer.h $
  15.  * $Revision: 1.8 $
  16.  * $Author: john $
  17.  * $Date: 1994/12/10 12:27:23 $
  18.  *
  19.  * Header for timer functions
  20.  *
  21.  * $Log: timer.h $
  22.  * Revision 1.8  1994/12/10  12:27:23  john
  23.  * Added timer_get_approx_seconds.
  24.  * 
  25.  * Revision 1.7  1994/12/10  12:10:25  john
  26.  * Added types.h.
  27.  * 
  28.  * 
  29.  * 
  30.  * 
  31.  * Revision 1.6  1994/12/10  12:07:06  john
  32.  * Added tick counter variable.
  33.  * 
  34.  * Revision 1.5  1994/11/15  12:04:15  john
  35.  * Cleaned up timer code a bit... took out unused functions
  36.  * like timer_get_milliseconds, etc.
  37.  * 
  38.  * Revision 1.4  1994/04/28  23:50:08  john
  39.  * Changed calling for init_timer.  Made the function that the
  40.  * timer calls be a far function. All of this was done to make
  41.  * our timer system compatible with the HMI sound stuff.
  42.  * 
  43.  * Revision 1.3  1994/02/17  15:57:12  john
  44.  * Changed key libary to C.
  45.  * 
  46.  * Revision 1.2  1994/01/18  10:58:34  john
  47.  * Added timer_get_fixed_seconds
  48.  * 
  49.  * Revision 1.1  1993/07/10  13:10:41  matt
  50.  * Initial revision
  51.  * 
  52.  *
  53.  */
  54.  
  55.  
  56. #ifndef _TIMER_H
  57. #define _TIMER_H
  58.  
  59. #include "types.h"
  60. #include "fix.h"
  61.  
  62. //==========================================================================
  63. // This installs the timer services and interrupts at the rate specified by
  64. // count_val.  If 'function' isn't 0, the function pointed to by function will
  65. // be called 'freq' times per second.  Should be > 19 and anything around
  66. // 2-3000 is gonna start slowing down the system.  Count_val should be
  67. // 1,193,180 divided by your target frequency. Use 0 for the normal 18.2 Hz
  68. // interrupt rate.
  69.  
  70. #define TIMER_FREQUENCY 1193180
  71.  
  72. extern void timer_init();
  73. extern void timer_close();
  74. extern void timer_set_rate(int count_val);
  75. extern void timer_set_function( void _far * function );
  76.  
  77. //==========================================================================
  78. // These functions return the time since the timer was initialized in
  79. // some various units. The total length of reading time varies for each
  80. // one.  They will roll around after they read 2^32.
  81. // There are milliseconds, milliseconds times 10, milliseconds times 100,
  82. // and microseconds.  They time out after 1000 hrs, 100 hrs, 10 hrs, and
  83. // 1 hr, respectively.
  84.  
  85. extern fix timer_get_fixed_seconds();    // Rolls about every 9 hours...
  86. extern fix timer_get_fixed_secondsX(); // Assume interrupts already disabled
  87. extern fix timer_get_approx_seconds();        // Returns time since program started... accurate to 1/120th of a second
  88.  
  89. //NOT_USED extern unsigned int timer_get_microseconds();
  90. //NOT_USED extern unsigned int timer_get_milliseconds100();
  91. //NOT_USED extern unsigned int timer_get_milliseconds10();
  92. //NOT_USED extern unsigned int timer_get_milliseconds();
  93. //NOT_USED extern unsigned int timer_get_millisecondsX();    // Assume interrupts disabled
  94.  
  95. //==========================================================================
  96. // Use to access the BIOS ticker... ie...   i = TICKER
  97. #define TICKER (*(volatile int *)0x46C)
  98. #define USECS_PER_READING( start, stop, frames ) (((stop-start)*54945)/frames)
  99.  
  100. #endif
  101.  
  102. 
  103.