Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }