public void Write_Data8_Byte() { var data = new BusData8(); data.Write((byte)TestValue); data.ToByte().Should().Be((byte)TestValue); }
public void Write_DisabledMaster_Throws() { var uut = new BusMaster <BusData8>(); var newValue = new BusData8(0); Action act = () => uut.Write(newValue); act.ShouldThrow <InvalidOperationException>(); }
public void Write_Unconnected_DoesNotThrow() { var uut = new BusMaster <BusData8>(); var newValue = new BusData8(0); uut.IsEnabled = true; Action test = () => uut.Write(newValue); test.ShouldNotThrow(); }
public void Write_LeftToRight() { var ms1 = new BusMasterSlave <BusData8>(); var ms2 = new BusMasterSlave <BusData8>(); var connection = ms1.CreateConnection(ms2); var value = new BusData8(0x55); ms1.IsEnabled = true; ms1.Write(value); ms2.Slave.Value.Should().Be(value); }
public void Write_BusValueChanged() { var uut = new BusMaster <BusData8>(); var bus = new Bus <BusData8>(); uut.ConnectTo(bus); uut.IsEnabled = true; var newValue = new BusData8(0); uut.Write(newValue); bus.AssertAllLevelsAre(DigitalLevel.Low); }
public void Write_EventTriggers() { var master = new BusMaster <BusData8>(); var bus = new Bus <BusData8>(); master.ConnectTo(bus); master.IsEnabled = true; bus.MonitorEvents(); var newValue = new BusData8(0); master.Write(newValue); bus.ShouldRaise("OnChanged"); }
public void IsEnabled_ToFalse_ChangesLevelsToFloating() { var uut = new BusMaster <BusData8>(); var bus = new Bus <BusData8>(); uut.ConnectTo(bus); uut.IsEnabled = true; var newValue = new BusData8(0); uut.Write(newValue); uut.IsEnabled = false; uut.Value.AssertAllLevelsAre(DigitalLevel.Floating); }
public void Write_SingleMaster_SlaveSeesChanges() { var master = new BusMaster <BusData8>(); var slave = new BusSlave <BusData8>(); var bus = new Bus <BusData8>(); master.ConnectTo(bus); slave.ConnectTo(bus); master.IsEnabled = true; var newValue = new BusData8(0); master.Write(newValue); slave.Value.AssertAllLevelsAre(DigitalLevel.Low); }
private static CpuZ80 ExecuteTest(OpcodeByte rst) { var cpuZ80 = new CpuZ80(); var model = cpuZ80.Initialize(null); var writer = new MemoryWriter <BusData16, BusData8>(model.Memory); writer.Fill(0x48, new BusData8(0)); writer[new BusData16(0)] = new BusData8(rst.Value); cpuZ80.FillRegisters(); model.ClockGen.SquareWave(11); Console.WriteLine(model.LogicAnalyzer.ToWaveJson()); return(cpuZ80); }
public void Write_MultipleMastersActivce_Error() { var master1 = new BusMaster <BusData8>(); var master2 = new BusMaster <BusData8>(); var bus = new Bus <BusData8>(); master1.ConnectTo(bus); master2.ConnectTo(bus); master1.IsEnabled = true; master2.IsEnabled = true; var loValue = new BusData8(0); var noValue = new BusData8(); master1.Write(loValue); Action act = () => master2.Write(loValue); act.ShouldThrow <BusConflictException>(); }
public void Write_MultipleMasters_OneAtaTime() { var master1 = new BusMaster <BusData8>(); var master2 = new BusMaster <BusData8>(); var bus = new Bus <BusData8>(); master1.ConnectTo(bus); master2.ConnectTo(bus); master1.IsEnabled = true; master2.IsEnabled = true; var loValue = new BusData8(0); var noValue = new BusData8(); master1.Write(loValue); master1.Write(noValue); master2.Write(loValue); master2.Write(noValue); master1.Write(loValue); }
public static void Set(this IDirectMemoryAccess <BusData8> memory, ushort address, byte value) { memory[address] = new BusData8(value); }