1
0
mirror of https://github.com/pevans/erc-c.git synced 2024-10-06 10:55:41 +00:00

Most status flags are now set when the CPU is created

This commit is contained in:
Peter Evans 2018-01-23 20:41:48 -06:00
parent 0b03fd24f5
commit 80136e9360

View File

@ -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);