private void LoadFile(string filename) { try { var temp = new Memory(); temp.Load(filename, out var start, out _); Text = $@"C64 Memory Visualizer - {filename}"; Memory = temp; DisplayPointer.FromInt(start.Value); DisassemblyStartAddress.FromInt(start.Value); DisplayMode = DisplayMode.HexRaw; if (Memory != null) { MemOverview = MemOverview.Create( Memory, Height, DisplayMode == DisplayMode.Disassembly ? DisassemblyStartAddress.Value : 0); } RenderScreen(); } catch { MessageBox.Show($@"The file ""{filename}"" could not be loaded.", Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void MainWindow_Resize(object sender, EventArgs e) { _screenPainter.RecalcGridFontSize = true; if (Memory != null && (MemOverview?.NeedsRecreating(Height) ?? false)) { MemOverview = MemOverview.Create(Memory, Height, DisplayMode == DisplayMode.Disassembly ? DisassemblyStartAddress.Value : 0); } Invalidate(); }
private void spriteToolStripMenuItem_Click(object sender, EventArgs e) { foreach (ToolStripMenuItem item in viewToolStripMenuItem.DropDownItems) { item.Checked = false; } spriteToolStripMenuItem.Checked = true; previousByteToolStripMenuItem.Enabled = true; nextByteToolStripMenuItem.Enabled = true; DisplayMode = DisplayMode.Sprite; _screenRenderer = new SpriteScreenRenderer(ScreenCharacterMap.Rows, Characters); MemOverview = MemOverview.Create(Memory, Height, DisplayMode == DisplayMode.Disassembly ? DisassemblyStartAddress.Value : 0); RenderScreen(); }
public static MemOverview Create(Memory memory, int actualHeight, int disassembly) { _actualHeight = actualHeight; _disassembly = disassembly; _bytesPerPixel = GetDivFactorFromHeight(actualHeight); var x = new MemOverview { Data = new int[Height] }; var memIndex = 0; for (var yIndex = 0; yIndex < Height; yIndex++) { var byteSum = 0; for (var y = 0; y < _bytesPerPixel; y++) { byteSum += memory.GetByte((ushort)memIndex); memIndex++; } x.Data[yIndex] = byteSum; } x.NormalizeData(); x.CreateBitmap(); return(x); }
private void MainWindow_Paint(object sender, PaintEventArgs e) { _screenPainter.Paint(e.Graphics, Memory, ClientSize, menuStrip1.Height, ScreenCharacterMap.Rows, ScreenCharacterMap.Columns, Characters); _screenRenderer.DrawGraphics(e.Graphics, Size, Memory, _lastRenderedDisplayPointer); MemOverview?.Draw(e.Graphics, DisplayPointer.Value, 10, menuStrip1.Height + 10); }