private void previousPageToolStripMenuItem_Click(object sender, EventArgs e)
        {
            switch (DisplayMode)
            {
            case DisplayMode.Disassembly:
                if (DisassemblyStepSize.Count > 0)
                {
                    var step = DisassemblyStepSize.Pop();
                    if (DisplayPointer.CanDec(step))
                    {
                        DisplayPointer.Dec(step);
                    }
                }
                break;

            default:
                if (DisplayPointer.CanDec(StepSize))
                {
                    DisplayPointer.Dec(StepSize);
                }
                else
                {
                    DisplayPointer.FromInt(0);
                }
                break;
            }
            RenderScreen();
        }
 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 nextByteToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (DisplayMode == DisplayMode.Disassembly)
     {
         return;
     }
     if (DisplayPointer.CanInc(1))
     {
         DisplayPointer.Inc(1);
     }
     RenderScreen();
 }
 private void previousByteToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (DisplayMode == DisplayMode.Disassembly)
     {
         return;
     }
     if (DisplayPointer.CanDec(1))
     {
         DisplayPointer.Dec(1);
     }
     else
     {
         DisplayPointer.FromInt(0);
     }
     RenderScreen();
 }
 private bool SetDisassemblyStartAddress()
 {
     using (var x = new PrgStartAddressDialog())
     {
         x.StartAddress = DisassemblyStartAddress.Value;
         if (x.ShowDialog(this) != DialogResult.OK)
         {
             return(false);
         }
         DisassemblyStartAddress.FromInt(x.StartAddress);
         DisassemblyStepSize.Clear();
         DisplayPointer.FromInt(x.StartAddress);
         RenderScreen();
         return(true);
     }
 }
        private void nextPageToolStripMenuItem_Click(object sender, EventArgs e)
        {
            switch (DisplayMode)
            {
            case DisplayMode.Disassembly:
                if (LastPerformedDisassemblyStepSize > 0)
                {
                    DisassemblyStepSize.Push(LastPerformedDisassemblyStepSize);
                    DisplayPointer.Inc(LastPerformedDisassemblyStepSize);
                }
                break;

            default:
                if (DisplayPointer.CanInc(StepSize))
                {
                    DisplayPointer.Inc(StepSize);
                }
                break;
            }
            RenderScreen();
        }
 private void homeToolStripMenuItem_Click(object sender, EventArgs e)
 {
     DisplayPointer.FromInt(DisplayMode == DisplayMode.Disassembly ? DisassemblyStartAddress.Value : 0);
     RenderScreen();
 }