lowry@orion.SRC.Honeywell.COM (Dave Lowry) (02/23/89)
Does anyone know how long the interrupt line for a slot on the Mac II must be asserted? I have a logic pulser that produces a 10 usec pulse. When I use it to request an interrupt, it doesn't seem to be recognized. If, however, I assert the interrupt line for a second or so, I get lots of interrupts. Do I have to continue to assert the line while the OS goes through the slot interrupt queue looking for a service routine? I'm using an Adex MacProto prototyping board and Lightspeed Pascal. Any help or ideas would be greatly appreciated. -Dave
kaufman@polya.Stanford.EDU (Marc T. Kaufman) (02/24/89)
In article <17495@srcsip.UUCP> lowry@srcsip.UUCP () writes: >Does anyone know how long the interrupt line for a slot on the Mac II >must be asserted? >I have a logic pulser that produces a 10 usec pulse. >When I use it to request an interrupt, it doesn't seem to be recognized. >If, however, I assert the interrupt line for a second or so, I get lots >of interrupts. Do I have to continue to assert the line while the >OS goes through the slot interrupt queue looking for a service routine? You have to hold the interrupt line until your software services the interrupt. The software should clear the interrupt when it is serviced. The interrupt line state is used by the OS dispatcher to know which interrupt service routine to call. If it is still there when you exit, the OS assumes you want another one. Marc Kaufman (kaufman@polya.stanford.edu)
paul@taniwha.UUCP (Paul Campbell) (02/24/89)
In article <17495@srcsip.UUCP> lowry@srcsip.UUCP () writes: >Does anyone know how long the interrupt line for a slot on the Mac II >must be asserted? > >I have a logic pulser that produces a 10 usec pulse. >When I use it to request an interrupt, it doesn't seem to be recognized. >If, however, I assert the interrupt line for a second or so, I get lots >of interrupts. Do I have to continue to assert the line while the >OS goes through the slot interrupt queue looking for a service routine? I've done several Mac NuBus boards, you're not the first to ask this. You do have to continue to assert the line untill the service routine is called. Usually you drive the NuBus interrupt from flip-flop on the board that is set when the interrupt is requested by the hardware and cleared by the software service routine. The Mac II hardware is quite simple, a VIA has 6 inputs, each of which is connected to an interrupt line, all the lines are ored together and applied to another VIA input that generates a level 2 interrupt. The level 2 MacOS kernel service routine must poll all the interrupt sources in VIA including, for each of the 6 inputs that are set, calling all the declared handlers for that slot. I hope this helps Paul -- Paul Campbell ..!{unisoft|mtxinu}!taniwha!paul (415)420-8179 Taniwha Systems Design, Oakland CA "Read my lips .... no GNU taxes" - as if they could tax free software