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();
 }
Example #4
0
        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);
 }