mirror of
https://github.com/pevans/erc-c.git
synced 2025-04-07 04:37:25 +00:00
Most status flags are now set when the CPU is created
This commit is contained in:
parent
0b03fd24f5
commit
80136e9360
@ -10,22 +10,22 @@ Test(mos6502_branch, bcc)
|
||||
{
|
||||
cpu->eff_addr = 123;
|
||||
mos6502_handle_bcc(cpu, 0);
|
||||
cr_assert_eq(cpu->PC, 123);
|
||||
cr_assert_eq(cpu->PC, 2);
|
||||
|
||||
cpu->P |= MOS_CARRY;
|
||||
cpu->eff_addr = 125;
|
||||
mos6502_handle_bcc(cpu, 0);
|
||||
cr_assert_neq(cpu->PC, 127);
|
||||
cpu->P &= ~MOS_CARRY;
|
||||
cpu->eff_addr = 128;
|
||||
mos6502_handle_bcc(cpu, 3);
|
||||
cr_assert_eq(cpu->PC, 128);
|
||||
}
|
||||
|
||||
Test(mos6502_branch, bcs)
|
||||
{
|
||||
cpu->eff_addr = 123;
|
||||
mos6502_handle_bcs(cpu, 0);
|
||||
cr_assert_neq(cpu->PC, 123);
|
||||
cr_assert_eq(cpu->PC, 123);
|
||||
|
||||
cpu->P |= MOS_CARRY;
|
||||
cpu->eff_addr = 125;
|
||||
cpu->P &= ~MOS_CARRY;
|
||||
cpu->eff_addr = 200;
|
||||
mos6502_handle_bcs(cpu, 0);
|
||||
cr_assert_eq(cpu->PC, 125);
|
||||
}
|
||||
@ -34,69 +34,69 @@ Test(mos6502_branch, beq)
|
||||
{
|
||||
cpu->eff_addr = 123;
|
||||
mos6502_handle_beq(cpu, 0);
|
||||
cr_assert_neq(cpu->PC, 123);
|
||||
cr_assert_eq(cpu->PC, 123);
|
||||
|
||||
cpu->P |= MOS_ZERO;
|
||||
cpu->eff_addr = 125;
|
||||
cpu->P &= ~MOS_ZERO;
|
||||
cpu->eff_addr = 150;
|
||||
mos6502_handle_beq(cpu, 0);
|
||||
cr_assert_eq(cpu->PC, 125);
|
||||
cr_assert_neq(cpu->PC, 150);
|
||||
}
|
||||
|
||||
Test(mos6502_branch, bmi)
|
||||
{
|
||||
cpu->eff_addr = 123;
|
||||
mos6502_handle_bmi(cpu, 0);
|
||||
cr_assert_neq(cpu->PC, 123);
|
||||
cr_assert_eq(cpu->PC, 123);
|
||||
|
||||
cpu->P |= MOS_NEGATIVE;
|
||||
cpu->eff_addr = 125;
|
||||
cpu->P &= ~MOS_NEGATIVE;
|
||||
cpu->eff_addr = 150;
|
||||
mos6502_handle_bmi(cpu, 0);
|
||||
cr_assert_eq(cpu->PC, 125);
|
||||
cr_assert_neq(cpu->PC, 150);
|
||||
}
|
||||
|
||||
Test(mos6502_branch, bne)
|
||||
{
|
||||
cpu->eff_addr = 123;
|
||||
mos6502_handle_bne(cpu, 0);
|
||||
cr_assert_eq(cpu->PC, 123);
|
||||
cr_assert_neq(cpu->PC, 123);
|
||||
|
||||
cpu->P |= MOS_ZERO;
|
||||
cpu->P &= ~MOS_ZERO;
|
||||
cpu->eff_addr = 125;
|
||||
mos6502_handle_bne(cpu, 0);
|
||||
cr_assert_neq(cpu->PC, 127);
|
||||
cr_assert_eq(cpu->PC, 125);
|
||||
}
|
||||
|
||||
Test(mos6502_branch, bpl)
|
||||
{
|
||||
cpu->eff_addr = 123;
|
||||
mos6502_handle_bpl(cpu, 0);
|
||||
cr_assert_eq(cpu->PC, 123);
|
||||
cr_assert_neq(cpu->PC, 123);
|
||||
|
||||
cpu->P |= MOS_NEGATIVE;
|
||||
cpu->P &= ~MOS_NEGATIVE;
|
||||
cpu->eff_addr = 125;
|
||||
mos6502_handle_bpl(cpu, 0);
|
||||
cr_assert_neq(cpu->PC, 127);
|
||||
cr_assert_eq(cpu->PC, 125);
|
||||
}
|
||||
|
||||
Test(mos6502_branch, bvc)
|
||||
{
|
||||
cpu->eff_addr = 123;
|
||||
mos6502_handle_bvc(cpu, 0);
|
||||
cr_assert_eq(cpu->PC, 123);
|
||||
cr_assert_neq(cpu->PC, 123);
|
||||
|
||||
cpu->P |= MOS_OVERFLOW;
|
||||
cpu->P &= ~MOS_OVERFLOW;
|
||||
cpu->eff_addr = 125;
|
||||
mos6502_handle_bvc(cpu, 0);
|
||||
cr_assert_neq(cpu->PC, 127);
|
||||
cr_assert_eq(cpu->PC, 125);
|
||||
}
|
||||
|
||||
Test(mos6502_branch, bvs)
|
||||
{
|
||||
cpu->eff_addr = 123;
|
||||
mos6502_handle_bvs(cpu, 0);
|
||||
cr_assert_neq(cpu->PC, 123);
|
||||
cr_assert_eq(cpu->PC, 123);
|
||||
|
||||
cpu->P |= MOS_OVERFLOW;
|
||||
cpu->P &= ~MOS_OVERFLOW;
|
||||
cpu->eff_addr = 125;
|
||||
mos6502_handle_bvs(cpu, 0);
|
||||
cr_assert_eq(cpu->PC, 125);
|
||||
|
Loading…
x
Reference in New Issue
Block a user