在TC环境下用C语言编的程序不发声,该怎么处理

在TC环境下用C语言编的程序不发声
因为之前我做了另外一个练习,该发音时却没声音。
所以就找了一个纯发声的程序测试:
#include <dos.h>
main()
{
int   freq;
for(freq=50;freq <5000;freq+=50)
{
sound   (freq);
delay(10000);
}
nosound();
}
编译、连接都没有问题,运行的时候没有声音输出。
因为怀疑sound()子函数有问题,就找了一个产生声音和关闭声音的函数如下:
void   SOUND(unsigned   frequency)
{
union  
{   /*   定义由—个整数和两个字符组成的联合   */
unsigned   divisor;
unsigned   char   c[2];
}   tone;

tone.divisor=119328/frequency;/*   计算该频率对应的定时器计数值   */
outportb(0x43,0xb6);   /*   通知定时器采用新的计数   */
outportb(0x42,tone.c[0]);   /*   计数低字节先送到定时器   */
outportb(0x42,tone.c[1]);   /*   计数高字节后送到定时器   */
outportb(0x61,   inportb(0x61)   |   3   );   /*   使定时器到喇叭的输出有效*/
}

void   NOSOUND(void)
{
              outportb(0x61,inportb(0x61)   &   0xfc));/*使定时器到喇叭的输出无效   */
}
结果还是没有声音。我用的是WindowsXP   操作系统,Turboc   2.0编译环境。
请CSDN的老师们指点迷津,先谢谢了!


------解决方案--------------------
可是我还是不太明白能听歌(不用耳机),应该就说明speaker是好的吧?
-------------------------------------
PC speaker是每次开机自检的时候,滴一声得小喇叭。你打开机箱就能看见。
你能用这个听歌???呵呵,恕我无知,不了解这是什么原理。


谁有用过sound()成功的吗?
-----------------------------------
10年前上学的时候用过,还有一点,如果声音的频率不再人的接受范围之内,
也是听不见的。
你去查一下人能听见声音的频率范围。
但我建议你先用别人的机器运行一下你的程序。