Exemplo n.º 1
0
 private void StartFetch()
 {
     _state        = new CpuFetch(_cpu);
     _currentState = CpuStates.Fetch;
     _opcodeBuilder.Clear();
     _cycles.Reset();
 }
Exemplo n.º 2
0
        private bool AcceptInterrupt()
        {
            var interrupt = _interruptManager.PopInterrupt();

            if (interrupt != null)
            {
                _state        = interrupt;
                _currentState = CpuStates.Interrupt;

                // prep engine state
                _opcodeBuilder.Clear();
                _cycles.Reset();
                _cycles.OpcodeDefinition = interrupt.Definition;
                return(true);
            }

            return(false);
        }
Exemplo n.º 3
0
        private bool ContinueFetch()
        {
            if (_cycles.IsLastCycle &&
                _cycles.OpcodeDefinition == null)
            {
                if (_opcodeBuilder.HasReversedOffsetParameterOrder)
                {
                    _state        = new CpuReadParameterThenExecute(_cpu);
                    _currentState = CpuStates.Execute;
                    _cycles.Continue(3);
                }
                else
                {
                    _state = new CpuFetch(_cpu);
                    _cycles.Continue();
                }
                return(true);
            }

            return(false);
        }
Exemplo n.º 4
0
 private void StartExecute()
 {
     _state        = new CpuExecute(_cpu);
     _currentState = CpuStates.Execute;
 }