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);
        }
Пример #9
0
        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());
            }
        }
Пример #10
0
        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());
            }
        }
Пример #11
0
 private void LoadIntoRegister(Register8Bit register, byte value)
 {
     registers.SetRegisterValue(register, value);
 }
Пример #12
0
 private void LoadIntoRegister(Register8Bit register, int value)
 {
     LoadIntoRegister(register, (byte)value);
 }
Пример #13
0
 public void SetInitialStackPointer(Register8Bit register)
 {
     this.Pointer = register;
     this.Pointer.Write(Constants.StackPointerStart);
 }