Date : Wed, 27 Oct 2004 15:31:38 +0200
From : John Kortink <kortink@...>
Subject: Re: &D00
On Wed, 27 Oct 2004 13:54:19 +0100, Richard Gellman wrote:
>
>>Eh ? There's no soft vector anywhere in NMI handling.
>>NMI jumps to (&FFFA) which is &0D00 on both BBC and
>>Master.
>>
>>
>>
>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.
Not too farfetched, I agree. But what the MOS actually
does is implement an exclusion mechanism, via service
calls, so only one claimant at a time can generate
NMI/use &D00+.
>In response to the original query, Master Reference Manual Pt. 1 defines
>roughly 32 bytes starting &D80 as "trackerball use". Since the average
>M128 doesn't have one, I've safely used that part for data storage
>before without fear of software playing with it.
Of well-behaved software playing with it. The drawback being,
of course, that any other piece of software might (ab)use
that memory in the same way, unbeknownst to yourself.
Do it anyway, of course, but I think it's prudent to use
memory very carefully on a BBC or Master (and use the
stack for all but persistent data).
John Kortink
--
Email : kortink@...
Homepage : http://www.inter.nl.net/users/J.Kortink