public DirectedGraphNode Add(CpuZ80.CpuZ80 cpu) { if (!Visit(cpu)) { return(FindNode(cpu)); } DirectedGraphNode node = AddNode <CpuZ80.CpuZ80>(cpu.Name); SetNodeMap(cpu, node); if (!DisplayComponents) { node = null; } LinkContains(node, Add(cpu.Address, cpu.Name)); LinkContains(node, Add(cpu.Data, cpu.Name)); LinkContains(node, Add(cpu.BusAcknowledge, cpu.Name)); LinkContains(node, Add(cpu.BusRequest, cpu.Name)); LinkContains(node, Add(cpu.Clock, cpu.Name)); LinkContains(node, Add(cpu.Halt, cpu.Name)); LinkContains(node, Add(cpu.Interrupt, cpu.Name)); LinkContains(node, Add(cpu.IoRequest, cpu.Name)); LinkContains(node, Add(cpu.MachineCycle1, cpu.Name)); LinkContains(node, Add(cpu.MemoryRequest, cpu.Name)); LinkContains(node, Add(cpu.NonMaskableInterrupt, cpu.Name)); LinkContains(node, Add(cpu.Read, cpu.Name)); LinkContains(node, Add(cpu.Refresh, cpu.Name)); LinkContains(node, Add(cpu.Reset, cpu.Name)); LinkContains(node, Add(cpu.Wait, cpu.Name)); LinkContains(node, Add(cpu.Write, cpu.Name)); return(node); }
public static IEnumerable <DigitalSignalConsumer> Inputs(this CpuZ80.CpuZ80 cpu) { yield return(cpu.Clock); yield return(cpu.BusRequest); yield return(cpu.Wait); yield return(cpu.Reset); yield return(cpu.Interrupt); yield return(cpu.NonMaskableInterrupt); }
public static IEnumerable <DigitalSignalProvider> Outputs(this CpuZ80.CpuZ80 cpu) { yield return(cpu.MachineCycle1); yield return(cpu.MemoryRequest); yield return(cpu.IoRequest); yield return(cpu.Read); yield return(cpu.Write); yield return(cpu.Refresh); yield return(cpu.Halt); yield return(cpu.BusAcknowledge); }