コード例 #1
0
        public void StartLogging(ULAStateElements stateElements, ULA.LifecycleEventType[] eventTypes)
        {
            stateElementsToLog = stateElements;
            // Write header line : title for each column
            log.Append("event type");
            log.Append(';');
            // Pixel clock and master counters
            if (stateElementsToLog.HasFlag(ULAStateElements.MasterCounters))
            {
                log.Append("pixel clock");
                log.Append(';');
                log.Append("line");
                log.Append(';');
                log.Append("column");
                log.Append(';');
            }
            // CPU clock and interrupt
            if (stateElementsToLog.HasFlag(ULAStateElements.CPUClock))
            {
                log.Append("CPU clock");
                log.Append(';');
                log.Append("HaltCpuClock");
                log.Append(';');
                log.Append("CPU interrupt");
                log.Append(';');
            }
            // ULA data input / output
            if (stateElementsToLog.HasFlag(ULAStateElements.DataIO))
            {
                log.Append("Address bus");
                log.Append(';');
                log.Append("Data bus");
                log.Append(';');

                log.Append("VideoMemAccessTimeFrame");
                log.Append(';');
                log.Append("CpuIORQ");
                log.Append(';');
                log.Append("CpuWR");
                log.Append(';');
                log.Append("CpuRD");
                log.Append(';');

                log.Append("VidMemREQ");
                log.Append(';');
                log.Append("VidMemRD");
                log.Append(';');
            }
            // Video output
            if (stateElementsToLog.HasFlag(ULAStateElements.VideoOutput))
            {
                log.Append("ColorSignal");
                log.Append(';');
                log.Append("HSync");
                log.Append(';');
                log.Append("VSync");
                log.Append(';');
            }
            // Internal video generator
            if (stateElementsToLog.HasFlag(ULAStateElements.VideoRegisters))
            {
                log.Append("GenerateBorder");
                log.Append(';');
                log.Append("BorderColorRegister");
                log.Append(';');

                log.Append("DisplayAddress");
                log.Append(';');
                log.Append("DisplayLatch");
                log.Append(';');
                log.Append("DisplayRegister");
                log.Append(';');
                log.Append("DisplayPixels");
                log.Append(';');

                log.Append("AttributeAddress");
                log.Append(';');
                log.Append("AttributeLatch");
                log.Append(';');
                log.Append("AttributeRegister");
                log.Append(';');

                log.Append("Frame");
                log.Append(';');
                log.Append("FlashClock");
                log.Append(';');
            }
            log.AppendLine();

            eventTypesToLog = eventTypes;
            foreach (ULA.LifecycleEventType eventType in eventTypesToLog)
            {
                switch (eventType)
                {
                case ULA.LifecycleEventType.ClockCycle:
                    ula.ClockCycle += LogULAState;
                    break;
                }
            }
        }
コード例 #2
0
        public void StartLogging(ULAStateElements stateElements, ULA.LifecycleEventType[] eventTypes)
        {
            stateElementsToLog = stateElements;
            // Write header line : title for each column
            log.Append("event type");
            log.Append(';');
            // Pixel clock and master counters
            if(stateElementsToLog.HasFlag(ULAStateElements.MasterCounters))
            {
                log.Append("pixel clock");
                log.Append(';');
                log.Append("line");
                log.Append(';');
                log.Append("column");
                log.Append(';');
            }
            // CPU clock and interrupt
            if (stateElementsToLog.HasFlag(ULAStateElements.CPUClock))
            {
                log.Append("CPU clock");
                log.Append(';');
                log.Append("HaltCpuClock");
                log.Append(';');
                log.Append("CPU interrupt");
                log.Append(';');
            }
            // ULA data input / output
            if (stateElementsToLog.HasFlag(ULAStateElements.DataIO))
            {
                log.Append("Address bus");
                log.Append(';');
                log.Append("Data bus");
                log.Append(';');

                log.Append("VideoMemAccessTimeFrame");
                log.Append(';');
                log.Append("CpuIORQ");
                log.Append(';');
                log.Append("CpuWR");
                log.Append(';');
                log.Append("CpuRD");
                log.Append(';');

                log.Append("VidMemREQ");
                log.Append(';');
                log.Append("VidMemRD");
                log.Append(';');
            }
            // Video output
            if (stateElementsToLog.HasFlag(ULAStateElements.VideoOutput))
            {
                log.Append("ColorSignal");
                log.Append(';');
                log.Append("HSync");
                log.Append(';');
                log.Append("VSync");
                log.Append(';');
            }
            // Internal video generator
            if (stateElementsToLog.HasFlag(ULAStateElements.VideoRegisters))
            {
                log.Append("GenerateBorder");
                log.Append(';');
                log.Append("BorderColorRegister");
                log.Append(';');

                log.Append("DisplayAddress");
                log.Append(';');
                log.Append("DisplayLatch");
                log.Append(';');
                log.Append("DisplayRegister");
                log.Append(';');
                log.Append("DisplayPixels");
                log.Append(';');

                log.Append("AttributeAddress");
                log.Append(';');
                log.Append("AttributeLatch");
                log.Append(';');
                log.Append("AttributeRegister");
                log.Append(';');

                log.Append("Frame");
                log.Append(';');
                log.Append("FlashClock");
                log.Append(';');
            }
            log.AppendLine();

            eventTypesToLog = eventTypes;
            foreach (ULA.LifecycleEventType eventType in eventTypesToLog)
            {
                switch (eventType)
                {
                    case ULA.LifecycleEventType.ClockCycle:
                        ula.ClockCycle += LogULAState;
                        break;
                }
            }
        }