public void TestSTA() { SignalBus signals = new SignalBus(); Operation op = new STA(null, signals, null); signals.Reset(); op.Step0(); Assert.IsTrue(signals.MI); Assert.IsTrue(signals.CO); signals.Reset(); op.Step1(); Assert.IsTrue(signals.RO); Assert.IsTrue(signals.II); Assert.IsTrue(signals.CE); signals.Reset(); op.Step2(); Assert.IsTrue(signals.IO); Assert.IsTrue(signals.MI); signals.Reset(); op.Step3(); Assert.IsTrue(signals.AO); Assert.IsTrue(signals.RI); }
public void TestSUB() { SignalBus signals = new SignalBus(); Operation op = new SUB(null, signals, null); signals.Reset(); op.Step0(); Assert.IsTrue(signals.MI); Assert.IsTrue(signals.CO); signals.Reset(); op.Step1(); Assert.IsTrue(signals.RO); Assert.IsTrue(signals.II); Assert.IsTrue(signals.CE); signals.Reset(); op.Step2(); Assert.IsTrue(signals.IO); Assert.IsTrue(signals.MI); signals.Reset(); op.Step3(); Assert.IsTrue(signals.RO); Assert.IsTrue(signals.BI); signals.Reset(); op.Step4(); Assert.IsTrue(signals.EO); Assert.IsTrue(signals.AI); Assert.IsTrue(signals.SU); Assert.IsTrue(signals.FI); }
public void TestJZZeroEnabled() { SignalBus signals = new SignalBus(); FlagBus flagBus = new FlagBus(); FlagsRegister flags = new FlagsRegister(null, signals, flagBus); flags.Value = FlagsRegister.ZERO; Operation op = new JZ(null, signals, flags); signals.Reset(); op.Step0(); Assert.IsTrue(signals.MI); Assert.IsTrue(signals.CO); signals.Reset(); op.Step1(); Assert.IsTrue(signals.RO); Assert.IsTrue(signals.II); Assert.IsTrue(signals.CE); signals.Reset(); op.Step2(); Assert.IsTrue(signals.IO); Assert.IsTrue(signals.J); }
public void TestJMP() { SignalBus signals = new SignalBus(); FlagsRegister flags = new FlagsRegister(null, signals, null); flags.Value = FlagsRegister.CARRY; Operation op = new JMP(null, signals, null); signals.Reset(); op.Step0(); Assert.IsTrue(signals.MI); Assert.IsTrue(signals.CO); signals.Reset(); op.Step1(); Assert.IsTrue(signals.RO); Assert.IsTrue(signals.II); Assert.IsTrue(signals.CE); signals.Reset(); op.Step2(); Assert.IsTrue(signals.IO); Assert.IsTrue(signals.J); }
public void TestJCCarryDisabled() { SignalBus signals = new SignalBus(); FlagsRegister flags = new FlagsRegister(null, signals, null); flags.Value = 0; Operation op = new JC(null, signals, flags); signals.Reset(); op.Step0(); Assert.IsTrue(signals.MI); Assert.IsTrue(signals.CO); signals.Reset(); op.Step1(); Assert.IsTrue(signals.RO); Assert.IsTrue(signals.II); Assert.IsTrue(signals.CE); signals.Reset(); op.Step2(); Assert.IsFalse(signals.IO); Assert.IsFalse(signals.J); }