Esempio n. 1
0
        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);
        }
Esempio n. 2
0
		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);
		}