improved handling of B status bit

This commit is contained in:
Christopher A. Mosher 2019-07-09 19:33:57 -04:00
parent c14603c74a
commit 25fde4d9d0

View File

@ -1441,7 +1441,7 @@ void CPU::addr_NMI()
case 4: case 4:
address = push(); address = push();
p |= PMASK_I; p |= PMASK_I;
p &= ~PMASK_B; // ??? p &= ~PMASK_B;
data = p; data = p;
write(); write();
break; break;
@ -1523,7 +1523,7 @@ void CPU::addr_IRQ()
case 4: case 4:
address = push(); address = push();
p |= PMASK_I; p |= PMASK_I;
p &= ~PMASK_B; // ??? p &= ~PMASK_B;
data = p; data = p;
write(); write();
break; break;
@ -1937,7 +1937,7 @@ void CPU::PHA()
void CPU::PHP() void CPU::PHP()
{ {
this->data = p; this->data = this->p | PMASK_B;
} }
void CPU::PLA() void CPU::PLA()
@ -1950,6 +1950,7 @@ void CPU::PLP()
{ {
this->p = this->data; this->p = this->data;
this->p |= PMASK_M; this->p |= PMASK_M;
this->p |= PMASK_B;
} }
void CPU::BRK() void CPU::BRK()