void IInstructionTiming.EndStackReadCycle(bool highByte, byte data) { IO.AddMemoryData(data); WaitForNextClockTick(); InsertWaitCycles(); IO.EndMemoryReadState(); WaitForNextClockTick(); }
void IInstructionTiming.MemoryReadCycle(ushort address, byte data) { IO.SetMemoryReadState(address); WaitForNextClockTick(); IO.AddMemoryData(data); WaitForNextClockTick(); InsertWaitCycles(); IO.EndMemoryReadState(); WaitForNextClockTick(); Instruction instruction = _executingInstructionPackage?.Instruction; if (instruction != null) { if (instruction.Timing.Exceptions.HasProlongedMemoryRead) { WaitForNextClockTick(); } } }