private void DecrementRegister(Register16Bit register) { ushort initialValue = registers.GetRegisterValue(register); ushort newValue = (ushort)(initialValue - 1); registers.SetRegisterValue(register, newValue); }
private void AddValueToRegister(Register16Bit register, ushort value) { ushort oldRegisterValue = registers.GetRegisterValue(register); ushort newRegisterValue = (ushort)(oldRegisterValue + value); registers.SetRegisterValue(register, newRegisterValue); ProcessFlags(oldRegisterValue, newRegisterValue); }
public void Register_can_be_set_when_clock_is_false() { var register16Bit = new Register16Bit(); register16Bit.Do(true, new Byte2(17), false); var output = register16Bit.Do(false, new Byte2(0), true); output.ToInt16().Should().Be(17); }
public void SetRegisterValue(Register16Bit register, ushort value) { switch (register) { case Register16Bit.SP: SP = value; break; case Register16Bit.PC: PC = value; break; case Register16Bit.AF: AF = value; break; case Register16Bit.BC: BC = value; break; case Register16Bit.DE: DE = value; break; case Register16Bit.HL: HL = value; break; default: throw new ArgumentException("16-bit register does not exist: " + register.ToString()); } }
public ushort GetRegisterValue(Register16Bit register) { switch (register) { case Register16Bit.SP: return(SP); case Register16Bit.PC: return(PC); case Register16Bit.AF: return(AF); case Register16Bit.BC: return(BC); case Register16Bit.DE: return(DE); case Register16Bit.HL: return(HL); default: throw new ArgumentException("16-bit register does not exist: " + register.ToString()); } }
private void Pop(Register16Bit register) { registers.SetRegisterValue(register, Pop()); }
private void Push(Register16Bit register) { Push(registers.GetRegisterValue(register)); }
private void LoadIntoRegister(Register16Bit register, int value) { LoadIntoRegister(register, (ushort)value); }
private void LoadIntoRegister(Register16Bit register, ushort value) { registers.SetRegisterValue(register, value); }