示例#1
0
 /// <summary>
 /// Ctor
 /// </summary>
 public S8Service()
 {
     parser = new S8CommandParser();
     parser.MessageHandler += (object sender, LogMessageEventArgs e) =>
     {
         Console.WriteLine(e.LogMessage);
         output.Add(e.LogMessage);
     };
 }
示例#2
0
        public bool InitVga(S8CommandParser Parser)
        {
            parser = Parser;


            // Read screen resolution from VIC chip
            ScreenWidth  = 256;
            ScreenHeight = 256;

            return(InitSDL("Slede8 VGA"));
        }
示例#3
0
        public DebugController(S8CommandParser parser, string title)
        {
            int y = 0;

            this.Title = title;

            var stepButton = new Button("Step", true)
            {
                X      = 0,
                Y      = y++,
                Width  = Dim.Fill(),
                Height = Dim.Fill()
            };

            //stepButton.ColorScheme =  Colors.TopLevel; ;

            var runButton = new Button("RUN", true)
            {
                X      = 0,
                Y      = y++,
                Width  = Dim.Fill(),
                Height = Dim.Fill()
            };

            var resetButton = new Button("RESET", true)
            {
                X      = 0,
                Y      = y++,
                Width  = Dim.Fill(),
                Height = Dim.Fill()
            };


            this.Add(stepButton);
            this.Add(runButton);
            this.Add(resetButton);

            stepButton.Clicked += delegate()
            {
                CommandButton?.Invoke("STEP");
            };

            runButton.Clicked += delegate()
            {
                CommandButton?.Invoke("RUN!");
            };


            resetButton.Clicked += delegate()
            {
                CommandButton?.Invoke("RESET");
            };
        }
示例#4
0
        public AsmView(S8CommandParser parser)
        {
            _parser = parser;

            this.SetSource(_asms);
            this.AllowsMultipleSelection = false;
            this.AllowsMarking           = false;

            parser.s8d.cpu.CpuStepHandler += delegate(object sender, CpuStepInfo cpustep)
            {
                refreshUI(cpustep.pc);
            };
        }
示例#5
0
        public SourceView(S8CommandParser parser)
        {
            this.CanFocus = true;
            this.parser   = parser;
            this.ReadOnly = false;

            SourceCode = parser.GetSourceCode();

            parser.s8d.cpu.CpuStepHandler += (object sender, CpuStepInfo e) =>
            {
                SetCpuStepLine(e);
            };
        }
示例#6
0
 public S8Gui(S8CommandParser parser)
 {
     s8parser = parser;
 }
示例#7
0
        static void Main(string[] args)
        {
            Console.BackgroundColor = ConsoleColor.Black;
            Console.ForegroundColor = ConsoleColor.Green;

            string defaultS8File = @"s8.s8";

            parser = new S8CommandParser();
            parser.MessageHandler += Parser_Message;

            parser.s8d.Init(defaultS8File);


            parser.s8d.cpu.HWDisplay.OnVSync += HWDisplay_OnVSync;


            Console.WriteLine("Velkommen til Slede8 debugger");
            Console.WriteLine("H => HELP");
            Console.WriteLine("");

            Console.WriteLine("Enter command 'GUI' to enter GUI mode");
            Console.WriteLine("");

            bool debugging = true;

            while (debugging)
            {
                if (parser.showAddress)
                {
                    Console.Write("S8#[");
                }
                else
                {
                    Console.Write("s8 [");
                }
                Console.Write(parser.currentAddress.ToString("X3") + "] ");


                string input = Console.ReadLine();

                switch (input.ToUpper())
                {
                case "Q":
                case "QUIT":
                case "DIE":
                    debugging = false;
                    break;

                case "CLS":
                    Console.Clear();
                    break;

                case "G":
                case "GUI":

                    var s8gui = new S8Gui(parser);
                    disableConsoleLogging = true;
                    s8gui.RunGui(null);
                    disableConsoleLogging = false;

                    Console.Clear();
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.ForegroundColor = ConsoleColor.Green;
                    break;

                case "W":
                case "WIN":
                case "WINRUN":
                    if (vgaView is null)
                    {
                        initVga();
                    }
                    if (vgaView is not null)
                    {
                        vgaView.RunUI();
                        vgaView.CleanupSDL();
                        vgaView = null;
                    }
                    else
                    {
                        Console.WriteLine("Failed to initialize SDL2/WIN");
                    }
                    break;

                default:
                    parser.ParseCommand(input);
                    break;
                }
            }

            if (vgaView is not null)
            {
                vgaView.CleanupSDL();
                vgaView = null;
            }
        }