高手请! 关于中断的问题!
#include <dos.h>
#include <stdio.h>
#include <conio.h>
void interrupt alarm(void)
{
char Port61_Old_Status;
char Port61_New_Status;
int DelayTime=0x300;
int Count=0;
int i;
Port61_New_Status=Port61_Old_Status=inportb(0x61);
Port61_New_Status&=0xfd;
for(Count=0;Count<0x300;Count++,DelayTime--)
{
Port61_New_Status^=0x02;
outportb(0x61,Port61_New_Status);
for(i=0;i<DelayTime;i++)
printf("I love you");
}
outportb(0x61,Port61_Old_Status);
outportb(0x20,0x20);
}
void main()
{
int IMR,base=0x300;
void interrupt (*Int_A_Old_Vector)();
Int_A_Old_Vector=getvect(0x0a);
setvect(0x0a,alarm);
IMR=inportb(0x21);
outportb(base+3,0x80);
clrscr();
printf("Press any key to generate a rising edge interrupt...");
getch();
outportb(0x21,0xfb&IMR);
outportb(base+2,0x0);
printf("\n\nPort C0 = %x",inportb(0x2c2));
outportb(base+2,0x01);
printf("\n\nPort C0 = %x",inportb(0x2c2));
printf("\nPress any key to quit...");
getch();
setvect(0x0a,Int_A_Old_Vector);
outportb(0x21,IMR);
outportb(base+3,0x9b);
}
(对PCL—731 I/O卡)
我不明白void interrupt (*Int_A_Old_Vector)();
Int_A_Old_Vector=getvect(0x0a);
setvect(0x0a,alarm);
这是什么意思??
再者,为什么没发生中断响应??