Esempio n. 1
0
        public void TestAddByteZeroFlag()
        {
            bus.WriteWord(4, 0xd402); // add.b d2,d2

            //this should be true as 0xFFFFFF00_byte -> 00
            TestADDByteZeroFlag(cpu, true, -128, -256);
        }
Esempio n. 2
0
        public void TestTasBroken()
        {
            TAS.EmulateBrokenTAS = true;
            bus.WriteWord(4, 0x4AC0); //TAS D0
            cpu.SetPC(4);
            cpu.SetDataRegisterLong(0, 0);

            cpu.Execute();
            int res = cpu.GetDataRegisterLong(0);

            Assert.Equal(0, (res & 0xFF) >> 7);
        }
Esempio n. 3
0
        public void TestADD()
        {
            cpu.SetPC(4);
            cpu.SetDataRegisterByte(0, 0x40);
            cpu.SetDataRegisterByte(1, 0x80);
            bus.WriteWord(4, 0xd001); // add.b d1,d0
            int ticks = cpu.Execute();

            Assert.Equal(6, cpu.GetPC());
            Assert.Equal(0xc0, cpu.GetDataRegisterByte(0));
            Assert.Equal(0x80, cpu.GetDataRegisterByte(1));
            Assert.Equal(4, ticks);
            Assert.False(cpu.IsFlagSet(cpu.CFlag));
            Assert.False(cpu.IsFlagSet(cpu.VFlag));
            Assert.False(cpu.IsFlagSet(cpu.ZFlag));
            Assert.True(cpu.IsFlagSet(cpu.NFlag));
            Assert.False(cpu.IsFlagSet(cpu.XFlag));

            cpu.SetPC(4);
            cpu.SetDataRegisterWord(0, 0x8000);
            cpu.SetDataRegisterWord(1, 0x8500);
            bus.WriteWord(4, 0xd041); // add.w d1,d0
            ticks = cpu.Execute();
            Assert.Equal(6, cpu.GetPC());
            Assert.Equal(0x0500, cpu.GetDataRegisterWord(0));
            Assert.Equal(0x8500, cpu.GetDataRegisterWord(1));
            Assert.Equal(4, ticks);
            Assert.True(cpu.IsFlagSet(cpu.CFlag));
            Assert.True(cpu.IsFlagSet(cpu.VFlag));
            Assert.False(cpu.IsFlagSet(cpu.ZFlag));
            Assert.False(cpu.IsFlagSet(cpu.NFlag));
            Assert.True(cpu.IsFlagSet(cpu.XFlag));

            cpu.SetPC(4);
            cpu.SetDataRegisterLong(0, -4);
            cpu.SetDataRegisterLong(1, 0x04);
            bus.WriteWord(4, 0xd081); // add.l d1,d0
            ticks = cpu.Execute();
            Assert.Equal(6, cpu.GetPC());
            Assert.Equal(0, cpu.GetDataRegisterLong(0));
            Assert.Equal(0x04, cpu.GetDataRegisterWord(1));
            Assert.Equal(6, ticks);
            Assert.True(cpu.IsFlagSet(cpu.CFlag));
            Assert.False(cpu.IsFlagSet(cpu.VFlag));
            Assert.True(cpu.IsFlagSet(cpu.ZFlag));
            Assert.False(cpu.IsFlagSet(cpu.NFlag));
            Assert.True(cpu.IsFlagSet(cpu.XFlag));
        }
Esempio n. 4
0
 public void TestSubByteZeroFlag()
 {
     bus.WriteWord(4, 0x9402); // sub.b d2,d2
     TestSUBByteZeroFlag(cpu, true, -128, -256);
 }