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; } }