|
void interrupt com_int(void)
{char iir, lsr;
disable();
iir= inportb(portbase + IIR);
iir &= 7;
if (iir == 0x04)
{while(1)
{lsr = inp(portbase + 5);
if((lsr & 0x01) == 0) break;
if (((endbuf + 1) & SBUFSIZ - 1) == startbuf) SError = BUFOVFL;
ccbuf[endbuf++] = inportb(portbase + RXR);
endbuf &= SBUFSIZ - 1;
} }
else
{if(iir & 2)
{lsr = inportb(portbase + 5);}
else
{inportb(portbase+6);}
}
outportb(0x20, 0x20);
enable();
}
E-mail: info@telesys.ru