public void ShouldRegisterMultiFunctionPeripheral() { var multiRegistration1 = new BusMultiRegistration(0, 100, "region1"); var multiRegistration2 = new BusMultiRegistration(100, 200, "region2"); var peripheral = new MultiRegistrationPeripheral(); sysbus.Register(peripheral, multiRegistration1); sysbus.Register(peripheral, multiRegistration2); sysbus.Register(peripheral, new BusRangeRegistration(300, 100)); Assert.AreEqual(false, peripheral.ByteRead1); Assert.AreEqual(false, peripheral.ByteRead2); Assert.AreEqual(false, peripheral.ByteWritten1); Assert.AreEqual(false, peripheral.ByteWritten2); Assert.AreEqual(false, peripheral.DoubleWordRead); Assert.AreEqual(false, peripheral.DoubleWordWritten); sysbus.ReadByte(10); Assert.AreEqual(true, peripheral.ByteRead1); Assert.AreEqual(false, peripheral.ByteRead2); Assert.AreEqual(false, peripheral.ByteWritten1); Assert.AreEqual(false, peripheral.ByteWritten2); Assert.AreEqual(false, peripheral.DoubleWordRead); Assert.AreEqual(false, peripheral.DoubleWordWritten); sysbus.ReadByte(110); Assert.AreEqual(true, peripheral.ByteRead1); Assert.AreEqual(true, peripheral.ByteRead2); Assert.AreEqual(false, peripheral.ByteWritten1); Assert.AreEqual(false, peripheral.ByteWritten2); Assert.AreEqual(false, peripheral.DoubleWordRead); Assert.AreEqual(false, peripheral.DoubleWordWritten); sysbus.WriteByte(10, 0); Assert.AreEqual(true, peripheral.ByteRead1); Assert.AreEqual(true, peripheral.ByteRead2); Assert.AreEqual(true, peripheral.ByteWritten1); Assert.AreEqual(false, peripheral.ByteWritten2); Assert.AreEqual(false, peripheral.DoubleWordRead); Assert.AreEqual(false, peripheral.DoubleWordWritten); sysbus.WriteByte(110, 0); Assert.AreEqual(true, peripheral.ByteRead1); Assert.AreEqual(true, peripheral.ByteRead2); Assert.AreEqual(true, peripheral.ByteWritten1); Assert.AreEqual(true, peripheral.ByteWritten2); Assert.AreEqual(false, peripheral.DoubleWordRead); Assert.AreEqual(false, peripheral.DoubleWordWritten); sysbus.ReadDoubleWord(210); Assert.AreEqual(true, peripheral.ByteRead1); Assert.AreEqual(true, peripheral.ByteRead2); Assert.AreEqual(true, peripheral.ByteWritten1); Assert.AreEqual(true, peripheral.ByteWritten2); Assert.AreEqual(true, peripheral.DoubleWordRead); Assert.AreEqual(false, peripheral.DoubleWordWritten); sysbus.WriteDoubleWord(210, 0); Assert.AreEqual(true, peripheral.ByteRead1); Assert.AreEqual(true, peripheral.ByteRead2); Assert.AreEqual(true, peripheral.ByteWritten1); Assert.AreEqual(true, peripheral.ByteWritten2); Assert.AreEqual(true, peripheral.DoubleWordRead); Assert.AreEqual(true, peripheral.DoubleWordWritten); }
public void ShouldRegisterMultiFunctionPeripheral() { var multiRegistration1 = new BusMultiRegistration(0, 100, "region1"); var multiRegistration2 = new BusMultiRegistration(100, 200, "region2"); var peripheral = new MultiRegistrationPeripheral(); sysbus.Register(peripheral, multiRegistration1); sysbus.Register(peripheral, multiRegistration2); sysbus.Register(peripheral, new BusRangeRegistration(300, 100)); Assert.AreEqual(false, peripheral.ByteRead1); Assert.AreEqual(false, peripheral.ByteRead2); Assert.AreEqual(false, peripheral.ByteWritten1); Assert.AreEqual(false, peripheral.ByteWritten2); Assert.AreEqual(false, peripheral.DoubleWordRead); Assert.AreEqual(false, peripheral.DoubleWordWritten); sysbus.ReadByte(10); Assert.AreEqual(true, peripheral.ByteRead1); Assert.AreEqual(false, peripheral.ByteRead2); Assert.AreEqual(false, peripheral.ByteWritten1); Assert.AreEqual(false, peripheral.ByteWritten2); Assert.AreEqual(false, peripheral.DoubleWordRead); Assert.AreEqual(false, peripheral.DoubleWordWritten); sysbus.ReadByte(110); Assert.AreEqual(true, peripheral.ByteRead1); Assert.AreEqual(true, peripheral.ByteRead2); Assert.AreEqual(false, peripheral.ByteWritten1); Assert.AreEqual(false, peripheral.ByteWritten2); Assert.AreEqual(false, peripheral.DoubleWordRead); Assert.AreEqual(false, peripheral.DoubleWordWritten); sysbus.WriteByte(10, 0); Assert.AreEqual(true, peripheral.ByteRead1); Assert.AreEqual(true, peripheral.ByteRead2); Assert.AreEqual(true, peripheral.ByteWritten1); Assert.AreEqual(false, peripheral.ByteWritten2); Assert.AreEqual(false, peripheral.DoubleWordRead); Assert.AreEqual(false, peripheral.DoubleWordWritten); sysbus.WriteByte(110, 0); Assert.AreEqual(true, peripheral.ByteRead1); Assert.AreEqual(true, peripheral.ByteRead2); Assert.AreEqual(true, peripheral.ByteWritten1); Assert.AreEqual(true, peripheral.ByteWritten2); Assert.AreEqual(false, peripheral.DoubleWordRead); Assert.AreEqual(false, peripheral.DoubleWordWritten); sysbus.ReadDoubleWord(210); Assert.AreEqual(true, peripheral.ByteRead1); Assert.AreEqual(true, peripheral.ByteRead2); Assert.AreEqual(true, peripheral.ByteWritten1); Assert.AreEqual(true, peripheral.ByteWritten2); Assert.AreEqual(true, peripheral.DoubleWordRead); Assert.AreEqual(false, peripheral.DoubleWordWritten); sysbus.WriteDoubleWord(210, 0); Assert.AreEqual(true, peripheral.ByteRead1); Assert.AreEqual(true, peripheral.ByteRead2); Assert.AreEqual(true, peripheral.ByteWritten1); Assert.AreEqual(true, peripheral.ByteWritten2); Assert.AreEqual(true, peripheral.DoubleWordRead); Assert.AreEqual(true, peripheral.DoubleWordWritten); }