WEB开发网
开发学院软件开发C++ 我的"欢乐颂"面世了 阅读

我的"欢乐颂"面世了

 2008-03-08 12:49:36 来源:WEB开发网   
核心提示:这是我用中断,通过对计数器的设置编写出的音乐程序,我的"欢乐颂"面世了,而不同直接调用函数"sound"的.虽然还不完善,但也能听出是一首歌拉
  这是我用中断,通过对计数器的设置编写出的音乐程序,而不同直接调用函数"sound"的.虽然还不完善,但也能听出是一首歌拉,哈哈....要执行就在turboc里编译一下就行了. #include<stdio.h>
#include<dos.h>
int n=0,fg=0;
int b;
void soundkid(int x,int y)
{
  int a;
  outportb(0x43,0xb6);
  outportb(0x42,x);
  outportb(0x42,y);
  a=inportb(0x61);
  a=a3;
  outportb(0x61,a);
};
void nosoundkid()
{
  int a;
  a=inportb(0x61);
  a=a&0xfd;
  outportb(0x61,a);
};
void interrupt(*old)(void);
void interrupt new()
{
  switch(b)
   {
    case 1:soundkid(200,17);break;
    case 2:soundkid(216,15);break;
    case 3:soundkid(30,14);break;
    case 4:soundkid(109,13);break;
    case 5:soundkid(226,11);break;
    case 6:soundkid(150,10);break;
    case 7:soundkid(110,9);break;
    case 0:nosoundkid();break;
    case'e':nosoundkid();break;
    default:;
}
  if(b!=0&b!='e')
   {
  n++;if(n>10){n=0;fg=1;}
   }
  else
   {n++;if(n>0){n=0;fg=1;}}
};
main()
{
  int code[42]={3,0,3,4,5,0,5,4,3,2,1,0,1,2,3,0,3,2,0,2,3,0,3,4,5,0,5,4,3,2,1,0,1,2,3,2,1,0,1,0,1,'e'};
  int i;
  for(i=0;i<42;i++)
  {
   b=code[i];
   old=getvect(0x1C);
   setvect(0x1c,new);
   for(;;)
    {
     if(fg==1)
  {fg=0;setvect(0x1c,old);break;}
    }
   }
}

点这里下载

Tags:欢乐颂 面世

编辑录入:爽爽 [复制链接] [打 印]
    赞助商链接