joe@cvl.UUCP (06/21/83)
I'm trying to write a terminal emulator, and I need to get interrupts from the communications card. I would swear I've done everything right, but that doesn't seem to be the case. I've enabled the appropriate bits in the interrupt enable register, cleared the magic bit in the modem control register, and installed the interrupt vector. According to the debugger, the interrupt identification register shows the appropriate interrupt is pending, but it doesn't happen. Burrowing through the ROM listing revealed that there's an interrupt mask in the 8259 interrupt controller, for which I have no documentation. I tried clearing the relevant bit there, too (at least, I think it was the relevant bit). Still no dice. Any ideas? joe@cvl.arpa joe@cvl.uucp {seismo, mcnc, we13, allegra}!rlgvax!cvl!joe
CSvax:Pucc-H:ac4@pur-ee.UUCP (06/23/83)
The folks at IBM have hidden some cute tricks up their sleeves to handle their communications interrupts. Check the technical reference manual page D-48 (logic diagram) and you will note that they have used the auxilliary output "OUT2" from the modem control register to mask off the INTRPT line. If you don't set OUT2, you will get nothing! No mention of this appears in the section on programming the INS-8250 - just a regurgitation of the chip specs. You do need to worry about the 8259 interrupt controller. The asynch comm adaptor uses interrupt level 4. You must set the interrupt mask register to enable level 4 (set the bit=0). You must also acknowledge each interrupt in the interrupt request register using the "end-if-interrupt" signal for level 4. Good luck! Tom Putnam Purdue University Computing Center ...decvax!pur-ee!pucc-h:ac4 (317)494-1787