Exemple #1
0
        public void CanSetTheSameFlagMoreThanOnce(CpuFlag flag)
        {
            cpu.SetFlag(flag);
            cpu.SetFlag(flag);
            cpu.SetFlag(flag);

            cpu.GetFlag(flag).Should().BeTrue();
        }
Exemple #2
0
        public void CanSetMultipleFlags(CpuFlag firstFlag, CpuFlag secondFlag, CpuFlag flagNotSet)
        {
            cpu.SetFlag(firstFlag);
            cpu.SetFlag(secondFlag);

            cpu.GetFlag(firstFlag).Should().BeTrue();
            cpu.GetFlag(secondFlag).Should().BeTrue();
            cpu.GetFlag(flagNotSet).Should().BeFalse();
        }
Exemple #3
0
 protected void ApplyFlag(CpuFlag flag, bool shouldSet)
 {
     if (shouldSet)
     {
         cpu.SetFlag(flag);
     }
     else
     {
         cpu.RemoveFlag(flag);
     }
 }
Exemple #4
0
        public void CanRemoveAFlag(CpuFlag firstFlag, CpuFlag secondFlag, CpuFlag thirdFlag)
        {
            cpu.SetFlag(firstFlag);
            cpu.SetFlag(secondFlag);
            cpu.SetFlag(thirdFlag);

            TestRemoveFlag(firstFlag);

            cpu.GetFlag(secondFlag).Should().BeTrue();
            cpu.GetFlag(thirdFlag).Should().BeTrue();

            TestRemoveFlag(secondFlag);

            cpu.GetFlag(thirdFlag).Should().BeTrue();
        }
Exemple #5
0
 public void SetFlag(CpuFlag cpuFlag) => StatusRegister |= cpuFlag;
Exemple #6
0
 public void RemoveFlag(CpuFlag cpuFlag) => StatusRegister &= ~cpuFlag;
Exemple #7
0
 public bool GetFlag(CpuFlag cpuFlag) => StatusRegister.HasFlag(cpuFlag);
Exemple #8
0
        private void TestRemoveFlag(CpuFlag flag)
        {
            cpu.RemoveFlag(flag);

            cpu.GetFlag(flag).Should().BeFalse();
        }
Exemple #9
0
        public void CanSetAFlag(CpuFlag flag)
        {
            cpu.SetFlag(flag);

            cpu.GetFlag(flag).Should().BeTrue();
        }
Exemple #10
0
 internal OpCodeDesc(string name, string desc, CpuFlag flags = CpuFlag.None)
 {
     Name        = name;
     Description = desc;
     Flags       = flags;
 }