I know this
6502 instruction looks like it'd be a
breakpoint, and it is used as such, but it's also used for
system calls in some
operating systems for 6502 machines.
- Function: Push flags (OR'd with 0x10 to distinguish BRK from an IRQ) and return address; set B bit of flags; jump to IRQ vector.
- Updates flags: None
- Cycles: 7
- Opcode numbers:
dp $00 (7 cycles)
Though BRK is a 2-byte instruction, some assemblers seem to think that BRK is a one-byte instruction. In such a case, write your syscalls like this:
brk
.dcb syscall_no
See also: 6502 instructions | 6502 addressing modes