mirror of
https://github.com/mre/mos6502.git
synced 2025-02-20 09:29:02 +00:00
implement BNE
This commit is contained in:
parent
18164c7abf
commit
8e797b70fa
11
src/cpu.rs
11
src/cpu.rs
@ -228,6 +228,11 @@ impl<M: Bus> CPU<M> {
|
||||
self.branch_if_equal(addr);
|
||||
}
|
||||
|
||||
(Instruction::BNE, OpInput::UseRelative(rel)) => {
|
||||
let addr = self.registers.program_counter.wrapping_add(rel);
|
||||
self.branch_if_not_equal(addr);
|
||||
}
|
||||
|
||||
(Instruction::BIT, OpInput::UseAddress(addr)) => {
|
||||
let a: u8 = self.registers.accumulator as u8;
|
||||
let m: u8 = self.memory.get_byte(addr);
|
||||
@ -850,6 +855,12 @@ impl<M: Bus> CPU<M> {
|
||||
}
|
||||
}
|
||||
|
||||
fn branch_if_not_equal(&mut self, addr: u16) {
|
||||
if !self.registers.status.contains(Status::PS_ZERO) {
|
||||
self.registers.program_counter = addr;
|
||||
}
|
||||
}
|
||||
|
||||
fn branch_if_minus(&mut self, addr: u16) {
|
||||
if self.registers.status.contains(Status::PS_NEGATIVE) {
|
||||
self.registers.program_counter = addr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user