Пример #1
0
        public CpuReadParameterThenExecute(Die die)
            : base(die, createInstruction: false)
        {
            // turn off refresh logic - not a true M1 cycle.
            RefreshEnabled = false;

            // read d-offset that comes before the opcode
            _currentPart = new ReadT3InstructionPart(Die, MachineCycleNames.M1);
        }
Пример #2
0
        protected override void OnClockNeg()
        {
            base.OnClockNeg();

            if (ExecutionEngine.Cycles.CycleName == CycleNames.T3 &&
                ExecutionEngine.Cycles.MachineCycle == MachineCycleNames.M1)
            {
                if (!_opcodeWasRead)
                {
                    // read instruction opcode
                    _currentPart = new ReadT3InstructionPart(Die, MachineCycleNames.M1);
                    ExecutionEngine.Cycles.Continue(5);
                    _opcodeWasRead = true;
                }
                else
                {
                    // done reading opcode
                    _currentPart = null;
                }
            }
        }