Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!proteon.com!twf From: twf@proteon.com ("Troy W. Frever") Newsgroups: comp.protocols.tcp-ip.ibmpc Subject: Interrupt vectors for PC Ethernet cards Message-ID: <8906191406.AA20374@sonny.proteon.com> Date: 19 Jun 89 14:06:48 GMT References: <396@moegate.UUCP> Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 24 Having just played with this fairly recently it is still rather fresh in my mind. The interrupt line called IRQ-2 on an 8-bit AT-bus card will tug on the line connected (in hardware) to IRQ-9 on an AT. This is interrupt number 0x71, with vector located at 0x1C4. Since IRQs 9-F are indeed on PIC 2, and, yes the actual interrupt level 2 on PIC 1 is used to cascade the PICs together, you will need to ACK both PICs (just as you would when handling any IRQ 9-F). Pretty much business as usual. Now comes the tricky part. The BIOS installs an interrupt handler for interrupt 0x71 (IRQ-9) which ACKs PIC-2 and issues a software interrupt for int number 0x0A (IRQ-2). Voila! software rediriect - it looks just as though IRQ-2 was pulled, with the vector at location 0x28 being invoked and PIC-1 remaining to be ACKed. In short, the software may either field these interrupts as IRQ-9 (which they are) or let the BIOS installed redirect change them to IRQ-2 and field them that way. This information (although rather obscure) can be found in the IBM PCAT Technical Reference manual. Troy Frever twf@sonny.proteon.com