Example #1
0
        public void UpdateCode()
        {
            int centerLineIndex = ctrlCode.GetLineIndexAtPosition(0) + ctrlCode.GetNumberVisibleLines() / 2;
            int centerLineAddress;
            int scrollOffset = -1;

            do
            {
                //Save the address at the center of the debug view
                centerLineAddress = _manager.Provider.GetLineAddress(centerLineIndex);
                centerLineIndex--;
                scrollOffset++;
            } while(centerLineAddress < 0 && centerLineIndex > 0);

            _manager.RefreshCode();
            ctrlCode.DataProvider = _manager.Provider;

            if (centerLineAddress >= 0)
            {
                //Scroll to the same address as before, to prevent the code view from changing due to setting or banking changes, etc.
                int lineIndex = _manager.Provider.GetLineIndex((UInt32)centerLineAddress) + scrollOffset;
                ctrlCode.ScrollToLineIndex(lineIndex, eHistoryType.None, false, true);
            }
            GoToActiveAddress();
        }
Example #2
0
        public void UpdateCode(bool refreshDisassembly = false)
        {
            int centerLineIndex = ctrlCode.GetLineIndexAtPosition(0) + ctrlCode.GetNumberVisibleLines() / 2;
            int centerLineAddress;
            int scrollOffset = -1;

            do
            {
                //Save the address at the center of the debug view
                centerLineAddress = _manager.Provider.GetLineAddress(centerLineIndex);
                centerLineIndex--;
                scrollOffset++;
            } while(centerLineAddress < 0 && centerLineIndex > 0);

            if (refreshDisassembly)
            {
                DebugApi.RefreshDisassembly(CpuType.Cpu);
                DebugApi.RefreshDisassembly(CpuType.Spc);
                DebugApi.RefreshDisassembly(CpuType.Sa1);
                DebugApi.RefreshDisassembly(CpuType.Gsu);
                DebugApi.RefreshDisassembly(CpuType.NecDsp);
                DebugApi.RefreshDisassembly(CpuType.Cx4);
                DebugApi.RefreshDisassembly(CpuType.Gameboy);
            }

            _manager.RefreshCode(_inSourceView ? _symbolProvider : null, _inSourceView ? cboSourceFile.SelectedItem as SourceFileInfo : null);
            ctrlCode.DataProvider = _manager.Provider;

            if (centerLineAddress >= 0)
            {
                //Scroll to the same address as before, to prevent the code view from changing due to setting or banking changes, etc.
                int lineIndex = _manager.Provider.GetLineIndex((UInt32)centerLineAddress) + scrollOffset;
                ctrlCode.ScrollToLineIndex(lineIndex, eHistoryType.None, false, true);
            }
        }
Example #3
0
        public void Initialize(IDisassemblyManager manager, BaseStyleProvider styleProvider)
        {
            _manager       = manager;
            _styleProvider = styleProvider;

            ctrlCode.StyleProvider       = _styleProvider;
            ctrlCode.ShowContentNotes    = false;
            ctrlCode.ShowMemoryValues    = true;
            ctrlCode.ExtendedMarginWidth = manager.ByteCodeSize * 4;
            ctrlCode.AddressSize         = manager.AddressSize;

            _manager.RefreshCode();
        }
Example #4
0
        public void Initialize(IDisassemblyManager manager, BaseStyleProvider styleProvider)
        {
            _manager        = manager;
            _styleProvider  = styleProvider;
            _symbolProvider = DebugWorkspaceManager.GetSymbolProvider();

            ctrlCode.StyleProvider       = _styleProvider;
            ctrlCode.ShowContentNotes    = false;
            ctrlCode.ShowMemoryValues    = true;
            ctrlCode.ExtendedMarginWidth = manager.ByteCodeSize * 4;
            ctrlCode.AddressSize         = manager.AddressSize;

            UpdateSourceFileDropdown();
            _manager.RefreshCode(_inSourceView ? _symbolProvider : null, _inSourceView ? cboSourceFile.SelectedItem as SourceFileInfo : null);
        }