home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 13 / 13.iso / s / s001 / 1.ddi / TS / SRC / TICKRATE.C < prev    next >
Encoding:
C/C++ Source or Header  |  1987-11-12  |  814 b   |  32 lines

  1.                 /******************************************
  2.            *           TICKRATE.C             *
  3.                * Copyright TimeSlice, Inc. 1985, 86, 87. *
  4.                ******************************************/
  5.  
  6. #include <ts.h>
  7.  
  8. #if defined(TURBOC)
  9. #define outp    outport
  10. #endif
  11. /***
  12. * TICKRATE( DIV )
  13. * Divide regular (1/18.2 sec) timer tick by DIV.
  14. ***/
  15. void tickrate( div ) {
  16.   union {
  17.     int i;
  18.     char c[2];
  19.   } cntr;
  20.   int cpuflags;
  21.   
  22.   cntr.i = 0x10000L / div;    /*compute new counter value*/
  23.   cpuflags = cli();        /*hold interrupts until done*/
  24.   outp( 0x43, 0x36 );        /*initialize 8259 to get its counter reset*/
  25.   outp( 0x40, cntr.c[0] );    /*give new cntr to 8259*/
  26.   outp( 0x40, cntr.c[1] );
  27.   _tckcnt = _tckrst = div;    /*set counters for slicer*/
  28.   putf( cpuflags );        /*reset interrupt flag*/
  29. }
  30.  
  31.  
  32.