Exemplo n.º 1
0
        private void Exec(TicTok tictok)
        {
            var cw = SEQ.Instance().ControlWord;

            if (string.Equals(cw["CALL"], "1", StringComparison.Ordinal))
            {
                // PC return address being set
                if (string.Equals(cw["RTNA"], "0", StringComparison.Ordinal))
                {
                    RegContent = Convert.ToString(0xFFFE - 0x0800 - 1, 2);
                    ram.SetMARContent(RegContent);
                }
                else
                {
                    RegContent = Convert.ToString(0xFFFF - 0x0800 - 1, 2);
                    ram.SetMARContent(RegContent);
                }
            }

            // Active Low, Pull on Tok
            if (string.Equals(cw["LM_"], "0", StringComparison.Ordinal) && tictok.ClockState == TicTok.State.Tok)
            {
                // Store Wbus val in MAR
                RegContent = Wbus.Instance().Value;

                // Send the MAR data to the RAM
                ram.IncomingMARData(RegContent);
            }
        }
Exemplo n.º 2
0
        private void Exec(TicTok tictok)
        {
            string cw = SEQ.Instance().ControlWord;

            //  TODO - Find a better way of using the mask to get the value
            //          Currently is using hardcoded magic numbers

            // Active Low, Pull on Tok
            if (cw[2] == '0' && tictok.ClockState == TicTok.State.Tok)
            {
                // Store Wbus val in A
                RegContent = Wbus.Instance().Value.Substring(4, 4);

                // Send the MAR data to the RAM
                ram.IncomingMARData(RegContent);
            }
        }