Beispiel #1
0
        private void DebuggerService_MachineCreated(object sender, MachineCreatedEventArgs e)
        {
            for (int i = 0; i < 240; i++)
            {
                globals[i].Visible = true;
            }

            Update(storyOpened: true);
        }
Beispiel #2
0
        private void DebuggerService_MachineCreated(object sender, MachineCreatedEventArgs e)
        {
            mainWindow = windowManager.Open(ZWindowType.TextBuffer);
            windowContainer.Children.Add(mainWindow);
            upperWindow = windowManager.Open(ZWindowType.TextGrid, mainWindow, ZWindowPosition.Above, ZWindowSizeType.Fixed, 0);

            windowManager.Activate(mainWindow);

            debuggerService.Machine.RegisterScreen(this);
            debuggerService.Machine.RegisterSoundEngine(this);
        }
Beispiel #3
0
        private void DebuggerService_MachineCreated(object sender, MachineCreatedEventArgs e)
        {
            mainWindow = windowManager.Open(ZWindowType.TextBuffer);
            windowContainer.Children.Add(mainWindow);
            upperWindow = windowManager.Open(ZWindowType.TextGrid, mainWindow, ZWindowPosition.Above, ZWindowSizeType.Fixed, 0);

            windowManager.Activate(mainWindow);

            debuggerService.Machine.RegisterScreen(this);
            debuggerService.Machine.RegisterSoundEngine(this);

            // Listen to SizeChanged events for updating the screen size.
            // Otherwise, the size of the output window at load time determines the registered size
            mainWindow.SizeChanged += OutputViewModel_SizeChanged;
        }
Beispiel #4
0
 private void DebuggerService_MachineCreated(object sender, MachineCreatedEventArgs e)
 {
     // TODO: Why is this code required to be done twice, just like in the ViewModel?
     foreach (var currentRoutine in this.routineService.RoutineTable)
     {
         int[] newLabels = ReadLabels(currentRoutine.Instructions.ToArray(), currentRoutine.Address, currentRoutine.Length);
         for (int i = 0; i < newLabels.Length; i++)
         {
             int currentLabel = newLabels[i];
             // We set the labels to start at 1 to be consistent with TXD output
             SetLabel(currentLabel, i + 1);
         }
     }
     this.routineService.RoutineTable.RoutineAdded += RoutineTable_RoutineAdded;
 }
Beispiel #5
0
 private void DebuggerService_MachineCreated(object sender, MachineCreatedEventArgs e)
 {
     Update();
 }
Beispiel #6
0
 private void DebuggerService_MachineCreated(object sender, MachineCreatedEventArgs e)
 {
     debuggerService.StateChanged += DebuggerService_StateChanged;
     debuggerService.Machine.RegisterMessageLog(this);
 }
Beispiel #7
0
        private void DebuggerService_MachineCreated(object sender, MachineCreatedEventArgs e)
        {
            Update();

            PropertyChanged("HasStory");
        }
        private void DebuggerService_MachineCreated(object sender, MachineCreatedEventArgs e)
        {
            var reader = new MemoryReader(storyService.Story.Memory, 0);

            DisassemblyLineViewModel ipLine;

            lines.BeginBulkOperation();
            try
            {
                var routineTable = routineService.RoutineTable;

                for (int rIndex = 0; rIndex < routineTable.Count; rIndex++)
                {
                    var routine = routineTable[rIndex];

                    if (rIndex > 0)
                    {
                        var lastRoutine = routineTable[rIndex - 1];
                        if (lastRoutine.Address + lastRoutine.Length < routine.Address)
                        {
                            var addressGapLine = new DisassemblyAddressGapLineViewModel(lastRoutine, routine)
                            {
                                ShowBlankBefore = true
                            };

                            lines.Add(addressGapLine);
                        }
                    }

                    var routineHeaderLine = new DisassemblyRoutineHeaderLineViewModel(routine)
                    {
                        ShowBlankBefore = rIndex > 0,
                        ShowBlankAfter  = true
                    };

                    routineAddressAndIndexList.Add(new AddressAndIndex(routineHeaderLine.Address, lines.Count));
                    lines.Add(routineHeaderLine);
                    addressToLineMap.Add(routine.Address, routineHeaderLine);

                    var instructions = routine.Instructions;
                    var lastIndex    = instructions.Length - 1;
                    for (int i = 0; i <= lastIndex; i++)
                    {
                        var instruction     = instructions[i];
                        var instructionLine = new DisassemblyInstructionLineViewModel(instruction, i == lastIndex);

                        if (breakpointService.Exists(instruction.Address))
                        {
                            instructionLine.HasBreakpoint = true;
                        }

                        lines.Add(instructionLine);
                        addressToLineMap.Add(instruction.Address, instructionLine);
                    }
                }

                ipLine       = GetLineByAddress(debuggerService.Machine.PC);
                ipLine.HasIP = true;
            }
            finally
            {
                lines.EndBulkOperation();
            }

            BringLineIntoView(ipLine);

            routineService.RoutineTable.RoutineAdded += RoutineTable_RoutineAdded;
        }