Exemplo n.º 1
0
 public void UpdateDebug()
 {
     updated              = true;
     chkCarry.Checked     = debug.FlagCarry;
     chkZero.Checked      = debug.FlagZero;
     chkInterrupt.Checked = debug.FlagIRQ;
     chkDecimal.Checked   = debug.FlagDecimal;
     chkBreak.Checked     = debug.FlagBreak;
     chkUnused.Checked    = debug.FlagNotUsed;
     chkOverflow.Checked  = debug.FlagOverflow;
     chkNegative.Checked  = debug.FlagSign;
     txtPC.Text           = debug.RegPC.ToString("X4");
     txtA.Text            = debug.RegA.ToString("X2");
     txtX.Text            = debug.RegX.ToString("X2");
     txtY.Text            = debug.RegY.ToString("X2");
     txtS.Text            = debug.RegS.ToString("X2");
     txtLastExec.Text     = debug.LogOp(debug.lastExec);
     txtScanline.Text     = debug.Scanline.ToString();
     txtCycle.Text        = debug.Cycle.ToString();
     chkNMI.Checked       = debug.NMIInterrupt;
     chkAPU.Checked       = debug.APUInterrupt;
     chkDMC.Checked       = debug.DMCInterrupt;
     chkMapper.Checked    = debug.MapperInterrupt;
     lstStack.Items.Clear();
     string[] stackItems = new string[0x100];
     for (int i = 0x00; i < 0x100; i++)
     {
         stackItems[i] = i.ToString("X2") + " = " + debug.Peek(i | 0x100).ToString("X2");
     }
     lstStack.Items.AddRange(stackItems);
     lstStack.SelectedIndex = debug.RegS;
     logStart = debug.RegPC;
     UpdateScroll();
     if (debug.debugInterrupt)
     {
         btnRun.Text = "Run";
     }
     else
     {
         btnRun.Text = "Pause";
     }
 }
Exemplo n.º 2
0
        private void btnSearch_Click(object sender, EventArgs e)
        {
            try
            {
                int value = int.Parse(txtCompare.Text, System.Globalization.NumberStyles.HexNumber) & 0xFF;
                results.Clear();
                switch (cboOp.SelectedIndex)
                {
                case -1:
                    return;

                case 0:
                    for (int i = 0; i <= 0xFFFF; i++)
                    {
                        if (debug.Peek(i) == value)
                        {
                            results.Add((ushort)i);
                        }
                    }
                    break;

                case 1:
                    for (int i = 0; i <= 0xFFFF; i++)
                    {
                        if (debug.Peek(i) != value)
                        {
                            results.Add((ushort)i);
                        }
                    }
                    break;

                case 2:
                    for (int i = 0; i <= 0xFFFF; i++)
                    {
                        if (debug.Peek(i) > value)
                        {
                            results.Add((ushort)i);
                        }
                    }
                    break;

                case 3:
                    for (int i = 0; i <= 0xFFFF; i++)
                    {
                        if (debug.Peek(i) < value)
                        {
                            results.Add((ushort)i);
                        }
                    }
                    break;
                }
                lstResults.Items.Clear();
                if (results.Count > 500)
                {
                    lstResults.Items.Add(results.Count.ToString() + " results");
                }
                else
                {
                    foreach (ushort item in results)
                    {
                        lstResults.Items.Add(item.ToString("X4") + " : " + debug.Peek(item).ToString("X2"));
                    }
                }
            }
            catch (FormatException formatEx)
            {
                MessageBox.Show("Comparison value must be a hex integer from 0x00 to 0xFF.");
            }
        }