We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS

WAI: Difference between revisions

From SnesLab
Jump to: navigation, search
(clarify that jumping occurs)
(flow RTI into paragraph)
Line 37: Line 37:
'''WAI''' (WAit for Interrupt) is a 65x instruction that waits until an interrupt is received.  The processor consumes less power while waiting.  The [[RDY pin]] is pulled low during the third cycle and the bus is freed up.  The interrupt is serviced immediately.
'''WAI''' (WAit for Interrupt) is a 65x instruction that waits until an interrupt is received.  The processor consumes less power while waiting.  The [[RDY pin]] is pulled low during the third cycle and the bus is freed up.  The interrupt is serviced immediately.


If the [[interrupt disable flag]] is set, then the way servicing occurs is for control to simply fall through to the instruction following WAI.
If the [[interrupt disable flag]] is set, then the way servicing occurs is for control to simply fall through to the instruction following WAI.  This is a very efficient way to service because the ISR is inlined and there is no need to [[RTI]].


If that flag is clear, control instead jumps through a vector into the [[interrupt handler]].
If that flag is clear, control instead jumps through a vector into the [[interrupt handler]].  Use RTI at the end of this ISR to return control to the instruction following WAI.


No flags are affected.
No flags are affected.
Line 50: Line 50:
=== See Also ===
=== See Also ===
* [[IRQ]]
* [[IRQ]]
* [[RTI]]
* [[STP]]
* [[STP]]
* [[NOP]]
* [[NOP]]

Revision as of 15:23, 22 July 2024

Basic Info
Addressing Mode Opcode Length Speed
Implied (type 3) CB 1 byte 3 cycles
Flags Affected
N V M X D I Z C
. . . . . . . .

WAI (WAit for Interrupt) is a 65x instruction that waits until an interrupt is received. The processor consumes less power while waiting. The RDY pin is pulled low during the third cycle and the bus is freed up. The interrupt is serviced immediately.

If the interrupt disable flag is set, then the way servicing occurs is for control to simply fall through to the instruction following WAI. This is a very efficient way to service because the ISR is inlined and there is no need to RTI.

If that flag is clear, control instead jumps through a vector into the interrupt handler. Use RTI at the end of this ISR to return control to the instruction following WAI.

No flags are affected.

Syntax

WAI

See Also

External Links