📄 song.c
字号:
#define S1 24
#define S2 S1/2
#define S4 S1/4
#define S8 S1/8
#define S16 S1/16
enum FREQDEF
{
L1=131,L2=147,L3=165,L4=175,L5=196,L6=220,L7=247,
N1=262,N2=296,N3=330,N4=349,N5=392,N6=440,N7=494,
H1=523,H2=587,H3=659,H4=698,H5=784,H6=880,H7=988,
I1=1047,I2=1175,I3=1319,I4=1397,I5=1568,I6=1760,I7=1976
} song[]=
{
N2,S4,N2,S8,N3,S16,N2,S16,N1,S4,L6,S4,L5,S8,
L3,S8,L5,S8,L6,S8,N1,S2,L6,S4,L6,S8,N1,S8,
N5,S8,N6,S8,N3,S8,N5,S8,N2,S1,N3,S4,N3,S8,
N2,S8,N3,S8,N5,S4,N3,S4,L5,S8,L3,S8,L5,S8,
L6,S8,N1,S2,L6,S4,L6,S8,N1,S8,L6,S8,L6,S8,
L2,S8,L3,S8,L5,S1,N2,S4,N2,S4,N5,S4,N6,S8,
N5,S8,N4,S2,N5,S2,N6,S4,N5,S8,N3,S8,N2,S8,
N3,S16,N2,S16,N1,S8,L6,S16,N1,S16,N2,S1,N3,S4,
N2,S8,N3,S8,N5,S4,N3,S4,L5,S8,L3,S8,L5,S8,
L6,S8,N1,S2,L6,S4,L6,S8,N1,S8,N2,S8,L6,S8,
N1,S8,N3,S8,N2,S1
};
void Sound(int freq)
{
asm{
mov al, 0B6h
out 43h, al
mov dx, 12h
mov ax, 34DEh
div freq
out 42h, al
mov al, ah
out 42h, al
in al, 61h
or al, 3
out 61h, al
}
}
void Nosound(void)
{
asm{
in al, 61h
and al, 252
out 61h, al
}
}
void Delay(int clicks)
{
unsigned int far *clock=(unsigned int far *)0x0000046CL;
unsigned int now;
now=*clock;
while(abs(*clock-now)<clicks){}
}
void Sound_All(int freq,int clicks)
{
Sound(freq);
Delay(clicks);
Nosound();
}
void main(void)
{
int i;
for(i=0;song[i];i+=2)
Sound_All(song[i],song[i+1]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -