public static void Restore(RegisterBase reg) { if (reg is RegisterA) { CPU6502.PLA(); A.State.Pop(); } else if (reg is RegisterX) { CPU6502.PLA(); X.Set(A); X.State.Pop(); } else if (reg is RegisterY) { CPU6502.PLA(); Y.Set(A); Y.State.Pop(); } }
public static void Restore(Register registers = Register.All, bool statusFlags = false) { if (registers.HasFlag(Register.Y)) { CPU6502.PLA(); Y.Set(A); Y.State.Pop(); } if (registers.HasFlag(Register.X)) { CPU6502.PLA(); X.Set(A); X.State.Pop(); } if (registers.HasFlag(Register.A)) { CPU6502.PLA(); A.State.Pop(); } if (statusFlags) { CPU6502.PLP(); } }
public static void Pop(Address addr) { CPU6502.PLA(); addr.Set(A); }