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

BRK (SPC700): Difference between revisions

From SnesLab
Jump to: navigation, search
(flow RETI into body)
(seems to ignore interrupt enable flag)
 
(One intermediate revision by the same user not shown)
Line 44: Line 44:
BRK very well could be the only interrupt source on the S-SMP.  It is the only instruction to unconditionally set the [[break flag]].
BRK very well could be the only interrupt source on the S-SMP.  It is the only instruction to unconditionally set the [[break flag]].


To return from the interrupt, use [[RETI]].
According to [[fullsnes]], [[EI]] and [[DI]] have no effect other than toggling the [[interrupt enable flag]], so the SPC700's BRK seems to be non-maskable like the 65c816's [[BRK]].
 
To return from the [[interrupt handler]], use [[RETI]].


=== See Also ===
=== See Also ===
Line 50: Line 52:
* [[SLEEP]]
* [[SLEEP]]
* [[STOP]]
* [[STOP]]
* [[EI]]
* [[DI]]


=== References ===
=== References ===

Latest revision as of 00:31, 14 August 2024

Basic Info
Addressing Mode Opcode Length Speed
Stack / Interrupt 0F 1 byte 8 cycles
Flags Affected
N V P B H I Z C
. . . 1 . 0 . .

BRK is an SPC700 instruction that triggers a software interrupt. The program counter and flags are pushed to the stack. The program counter then jumps to the address stored at $FFDE.

Syntax

BRK

BRK very well could be the only interrupt source on the S-SMP. It is the only instruction to unconditionally set the break flag.

According to fullsnes, EI and DI have no effect other than toggling the interrupt enable flag, so the SPC700's BRK seems to be non-maskable like the 65c816's BRK.

To return from the interrupt handler, use RETI.

See Also

References