Пример #1
0
        protected virtual void StepOver()
        {
            ulong  num  = this.Config.MaxStepOverTactCount;
            ulong  tact = this.CPU.Tact;
            int    num2;
            string mnemonic = Z80CPU.GetMnemonic(new Z80CPU.MEMREADER(this.ReadMemory), (int)this.CPU.regs.PC, true, out num2);
            ushort num3     = (ushort)((int)this.CPU.regs.PC + num2 & 65535);
            bool   flag     = mnemonic.IndexOf("J") >= 0 || mnemonic.IndexOf("RET") >= 0;

            if (flag)
            {
                this.StepInto();
                return;
            }
            for (;;)
            {
                if (this.CPU.Tact - tact >= num)
                {
                    if (this.OnMaxTactExceed(num))
                    {
                        break;
                    }
                    tact = this.CPU.Tact;
                    num *= 2UL;
                }
                this.StepInto();
                if (this.CPU.regs.PC == num3)
                {
                    return;
                }
                if (this.CheckBreakpoint(this.CPU.regs.PC))
                {
                    goto Block_6;
                }
            }
            return;

Block_6:
            this.OnBreakpoint();
        }
Пример #2
0
 private void dasmPanel_GetDasm(object Sender, ushort ADDR, out string DASM, out int len)
 {
     DASM = Z80CPU.GetMnemonic(new Z80CPU.MEMREADER(this._spectrum.ReadMemory), (int)ADDR, true, out len);
 }