Esempio n. 1
0
        void StepOver()
        {
            running      = false;
            steppingOver = false;
            switch (z80.Memory[z80.PC])
            {
            case 0xED:
                switch (z80.Memory[z80.PC + 1])
                {
                case 0xB9:          //	CPDR
                case 0xB1:          //	CPIR
                case 0xBA:          //	INDR
                case 0xB2:          //	INIR
                case 0xB8:          //	LDDR
                case 0xB0:          //	LDIR
                case 0xBB:          //	OTDR
                case 0xB3:          //	OTIR
                    StatusMessage          = "Step Over";
                    steppoints[z80.PC + 2] = true;
                    Hide();
                    steppingOver = true;
                    z80.DoRun(true);
                    return;
                }
                break;

            case 0xCD:      //  CALL
            case 0xC4:      //	CALL NZ,(nn)
            case 0xCC:      //	CALL Z,(nn)
            case 0xD4:      //	CALL NC,(nn)
            case 0xDC:      //	CALL C,(nn)
            case 0xE4:      //	CALL PO,(nn)
            case 0xEC:      //	CALL PE,(nn)
            case 0xF4:      //	CALL P,(nn)
            case 0xFC:      //	CALL M,(nn)
                StatusMessage          = "Step Over";
                steppoints[z80.PC + 3] = true;
                Hide();
                steppingOver = true;
                z80.DoRun(true);
                return;

            default:
                StatusMessage = "Step";
                z80.DoStep();
                break;
            }
        }