private void BitTest(Register8Bit register, int bitLocation) { byte registerValue = registers.GetRegisterValue(register); byte bitMaskedValue = GetBitMaskedValue(registerValue, bitLocation); ProcessFlags(registerValue, bitMaskedValue); }
private void SetBit(Register8Bit register, int bitLocation) { byte oldRegisterValue = registers.GetRegisterValue(register); byte newRegisterValue = SetBit(oldRegisterValue, bitLocation); registers.SetRegisterValue(register, newRegisterValue); }
private void DecrementRegister(Register8Bit register) { byte initialValue = registers.GetRegisterValue(register); byte newValue = (byte)(initialValue - 1); registers.SetRegisterValue(register, newValue); ProcessFlags(initialValue, newValue); }
private void ShiftRightLogical(Register8Bit register) { byte oldRegisterValue = registers.GetRegisterValue(register); byte newRegisterValue = ShiftRightLogical(oldRegisterValue); registers.SetRegisterValue(register, newRegisterValue); ProcessFlags(oldRegisterValue, newRegisterValue); }
private void Swap(Register8Bit register) { byte oldRegisterValue = registers.GetRegisterValue(register); byte newRegisterValue = Swap(oldRegisterValue); registers.SetRegisterValue(register, newRegisterValue); ProcessFlags(oldRegisterValue, newRegisterValue); }
private void RotateRightWithCarry(Register8Bit register) { byte oldRegisterValue = registers.GetRegisterValue(register); byte newRegisterValue = RotateRightWithCarry(oldRegisterValue); registers.SetRegisterValue(register, newRegisterValue); ProcessFlags(oldRegisterValue, newRegisterValue); }
private void ShiftLeftArithmetic(Register8Bit register) { byte oldRegisterValue = registers.GetRegisterValue(register); byte newRegisterValue = ShiftLeftArithmetic(oldRegisterValue); registers.SetRegisterValue(register, newRegisterValue); ProcessFlags(oldRegisterValue, newRegisterValue); }
private void RotateLeft(Register8Bit register) { byte oldRegisterValue = registers.GetRegisterValue(register); byte newRegisterValue = RotateLeft(oldRegisterValue); registers.SetRegisterValue(register, newRegisterValue); ProcessFlags(oldRegisterValue, newRegisterValue); }
public byte GetRegisterValue(Register8Bit register) { switch (register) { case Register8Bit.A: return(A); case Register8Bit.B: return(B); case Register8Bit.C: return(C); case Register8Bit.D: return(D); case Register8Bit.E: return(E); case Register8Bit.H: return(H); case Register8Bit.L: return(L); case Register8Bit.F: return(Flags.ByteValue); default: throw new ArgumentException("8-bit register does not exist: " + register.ToString()); } }
public void SetRegisterValue(Register8Bit register, byte value) { switch (register) { case Register8Bit.A: A = value; break; case Register8Bit.B: B = value; break; case Register8Bit.C: C = value; break; case Register8Bit.D: D = value; break; case Register8Bit.E: E = value; break; case Register8Bit.H: H = value; break; case Register8Bit.L: L = value; break; case Register8Bit.F: Flags.ByteValue = value; break; default: throw new ArgumentException("8-bit register does not exist: " + register.ToString()); } }
private void LoadIntoRegister(Register8Bit register, byte value) { registers.SetRegisterValue(register, value); }
private void LoadIntoRegister(Register8Bit register, int value) { LoadIntoRegister(register, (byte)value); }
public void SetInitialStackPointer(Register8Bit register) { this.Pointer = register; this.Pointer.Write(Constants.StackPointerStart); }