home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1996 September / Simtel-MSDOS-Sep1996-CD2.iso / disc2 / c / speaker.c < prev    next >
Text File  |  1983-09-13  |  516b  |  29 lines

  1. #define ON 1
  2. #define OFF 0
  3.  
  4.  
  5. /*
  6.  * Set frequency of oscillator feeding speaker.
  7.  */
  8.  
  9. setfreq(hertz) {
  10.          unsigned divisor = 1193180L/hertz ;
  11.          outportb(0x43, 0xB6) ;
  12.          outportb(0x42, divisor & 0377) ;
  13.          outportb(0x42, divisor >> 8) ;
  14. }
  15.  
  16.  
  17. /*
  18.  * Turn speaker on or off.
  19.  */
  20.  
  21. speaker(on) {
  22.          int portval ;
  23.  
  24.          portval = inportb(0x61) ;
  25.          if (on)   portval |= 03 ;
  26.          else      portval &=~ 03 ;
  27.          outportb(0x61, portval) ;
  28. }
  29.