Date : Wed, 27 Oct 2004 14:21:30 +0100 (BST)
From : Chris Johns <chris.johns@...>
Subject: Re: &D00
On Wed, 27 Oct 2004, Richard Gellman wrote:
> Ok, I'll confess to not actually looking too deeply into this one. I
> know that BRK/IRQ does use soft vectors (tho IRQ1V I wasn't aware was
> directly called from the hard vector), and I assumed that NMI used a
> similiar system, on the basis that looking through the ROM messages
> (master ref. man pt 1) shows a number of calls for claiming/releasing
> NMI, and the description of that memory area as (quote) "You can not use
> this area unless you have claimed NMI". From this I assumed the MOS must
> be doing something vectoresque to control NMI flow.
As I understand it (my main dealings with NMIs have been trying to get
Econet working on an electron .. electron NMIs are more fun, as you have
the added complication of the ULA).
There no vectors on NMIs. There's just the current NMI owner. You use
service calls to claim the NMI, and you will be told when someone else
has claimed it.
In a dual econet/disc system, Econet "normally" has the NMI. It will claim
NMIs on startup and monitor packets coming in from the network and process
them as appropriate.
If you then use the disc drive, the DFS will claim the NMI. The econet
will disable ADLC interupts (using NETOFF) and release the NMI to the
DFS. It will then do its disc use, and release the NMIs when it's
finished. Exactly how that bit works I can't remember offhand, it could be
that on a claim you are told the previous owner - I don't have the the AUG
to hand to check.
The result of it all is that econet now owns the NMIs again so can
re-enable ADLC interupts and continue to monitor the network.
Cheers
Chris