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