Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uwm.edu!srcsip!jhereg!quest!digibd!tjc From: tjc@digibd (T. J. Carter) Newsgroups: comp.sys.ibm.pc Subject: Re: DigiBoard MC/X interrupts? Keywords: DigiBoard Message-ID: <1990Mar20.191049.15494@digibd> Date: 20 Mar 90 19:10:49 GMT References: <53516@microsoft.UUCP> Organization: DigiBoard Incorporated, St. Louis Park, MN Lines: 48 richgi@microsoft.UUCP (Richard GILLMANN) writes: >I've been trying to get some interrupt driven code to work >with the DigiBoard MC/8 board and not having much luck. The >MC/8 board has eight serial ports on it plus some hardware that >provides a status port, which one can use to tell which port >generated an interrupt. >I have code (essentially the same as COMPKG2 from the Info-IBMPC >archives) that works fine with the regular AT bus DigiBoards, >and also works fine with the regular two PS/2 serial ports, but >it doesn't work with the MC/8. (The MC/8 is the PS/2 MCA bus >equivalent of the DigiBoard Com/8 card). >What happens is that as soon as my code enables the Interrupt Enable >Register for transmit interrupts, the machine hangs. It never >gets to the interrupt code. The DigiBoard tech support folks don't >seem to know much. Has anyone had this same problem and figured it >out? I'd sure appreciate a clue. >Richard I think the blunt of your problem is that the DigiBoard MC/8 uses a different interrupt register scheme then the COM/8. The Com/8 interrupt status register delivers the channel number of the interrupting UART in bits 0-2, with a 000 representing port 1. This value is often used by software as an offset into a jump table. When no interrupts are pendind a value of 0xFF is returned. The MC/8 uses an entirely different scheme. The MC/8 uses one eight bit register to simultaneouly represent all of the channels interrupt status. Bit 0 is used to indicate channel ones interrupt status, bit 1 channel twos interrupt status and so on. When a bit is set there is a interrupt pending on the cooresponding channel. A value of 0xFF indicates interrupts pending on all eight channels. The values returned by the MC/8 interrupt status register are not useful as indexes into a jump table. I am sorry to here that our tech support people were not able to help with this. If you have any further problems feel free to call and ask for me, I should be able to answer any questions. T.J. Carter Senior Member of Techinal Staff - Hardware DigiBoard, Inc. UUNET Address : digibd!tjc