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
(3 cycle Instructions) |
(how servicing works) |
||
Line 36: | Line 36: | ||
'''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. 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. 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 that flag clear, control instead goes into the [[interrupt handler]]. | |||
=== See Also === | === See Also === |
Revision as of 13:38, 14 December 2023
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. 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 that flag clear, control instead goes into the interrupt handler.
See Also
External Links
- Eyes & Lichty page 522, on WAI: https://archive.org/details/0893037893ProgrammingThe65816/page/n548
- Labiak page 203 on WAI: https://archive.org/details/Programming_the_65816/page/n213
- snes9x implementation of WAI: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L3313
- undisbeliever on WAI: https://undisbeliever.net/snesdev/65816-opcodes.html#wai-wait-for-interrupt