Login
Search for:


Previous | Next

From: Rachy (all posts)
Date: 2000-07-25
Subject: Re: Interrupts
Hello!

On 25 Jul 00, at 11:47, Zsolt Prievara wrote:

> When does the hardware set the 7th bit of FF09? What happens exactly when
> the mask disables
> an interrupt and it occurs?

AFAIK:
7th bit marks (only marks) if an interrupt request appeared.
If an interrupt disabled in $FF0A, then the adequate bit in $FF09 is set, but no interrupt occurs.

Like:
LDA $FF09
AND $FF0A
BEQ nointerrupt
...

Make sure $FF0A never contains higher number than $7F!

> And what happens if a request bit is set, but its interrupt occurs again? Is
> it possible?

It is possible eg. with timer interrupts. If the bits are not cleared soon after, it may happen once again. Nothing special happens, just keep on requesting interrupt, if it is not disabled in any way.
BTW it causes an infinte interrupt loops. (Too long interrupt code, I know this problem very much... ;)) But: at the start of an interrupt,
maskable interrupt is automatically disabled!

I have a question too about this topic. I asked half a year ago, but nobody aswered it properly. What happens, when I write back values to
$FF09? I found in several programs, that this register is cleared when _ANY_ value is written. (At least many of the programs are working on this way.) Is that true?

Eg: ASL $FF09 - clears the requests, besides it is working like:
read $FF09, eg.:$82 (irq request), then shift left: $04, and write back.

Thanks in advance:

Almos Rajnai

+---------------------------=%%&##########&%%=-------------------------+
| Rachy of Bi0Hazard | PowerAmiga owner | ATO Hungarian |F0NT! |
| e-mail: racs@fs2.bdtf.hu | No Risc No Fun! | member |Editor|
+-----ICQ:-16342960---------=%%&##########&%%=---Phone:+36 20 9891489--+

Copyright © Plus/4 World Team, 2001-2024