File: sound.c

package info (click to toggle)
linux86 0.16.21-2
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,072 kB
  • sloc: ansic: 66,757; asm: 6,154; makefile: 1,374; sh: 703
file content (27 lines) | stat: -rw-r--r-- 388 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

#include <bios.h>

static int port_val = -1;

sound(freq)
unsigned freq;	/* freq is in hertz */
{
   if(port_val == -1 )
      port_val = inp(0x61);

   freq = 1193180L / freq;

   outp(0x61, port_val|3);
   outp(0x43, 0xb6);
   outp(0x42, freq&0xFF);
   outp(0x42, (freq>>8)&0xFF);
}

nosound()
{
   if( port_val )
      outp(0x61, port_val);
   else
      outp(0x61, inp(0x61)&~3);
}