[comp.sys.mac.programmer] NuBus Interrupts

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