#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=a|3; 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;} } } }
希望大家共同学习