> >If executed between a DI and an EI it indeed cancels the interrupt (if
not
> >between DI and EI it's useless because if the interrupts are enabled the
> >interrupt-routine itself will 1. read the register itself and therefor
erase
> >it, or 2. not read the register and end up in an infinite loop of
> >interrupts.
>
> When Frits talked about "cancelling", he didn't mean clearing the
interrupt
> flag by reading the status register. The question is what happens when the
> Z80 is in a DI state, a VDP interrupt occurs and then the interrupts are
> disabled at VDP level (using IE0 or IE1, depending on the type of
> interrupt) before the Z80 reaches EI state.

Ah, well.
It won't be cancelled. DI just lets the Z80 ignore the signal on its
interrupt-pin (which can be generated by any device, VDP, RS232, etc).

Pay attention:
If a NEW VDP interrupt (of the same type) occurs before the old one is
intercepted then the old interrupt will be cleared. "Of the same type"
means:
- If a 'normal' vertical scanning interrupt occurs, however the interrupts
are disabled during a second, then only one interrupt will be executed right
after the instruction after the EI. Not all 60...
- However, a lineinterrupt WON'T clear a yet unacknowledged vertical
scanning interrupt.
- A new lineinterrupt will clear an old one though.


~Grauw


--
>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
          email me: [EMAIL PROTECTED] or ICQ: 10196372
             visit the Datax homepage at http://datax.cjb.net/
MSX fair Bussum / MSX Marathon homepage: http://msxfair.cjb.net/
>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<


****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)
****

Reply via email to