diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2021-10-11 17:13:37 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2021-10-11 17:13:39 -0400 |
commit | c4e8f00006865da3d6c6863cd559573556573fc3 (patch) | |
tree | 98fa0ab155fb6d9ff82a142795533de05c6ec45a /src/devices | |
parent | 0f04623ade148f48d446d4b0dfcfb41679377339 (diff) |
hd6120: IAC also complements LINK on carry out
Diffstat (limited to 'src/devices')
-rw-r--r-- | src/devices/cpu/pdp8/hd6120.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/devices/cpu/pdp8/hd6120.cpp b/src/devices/cpu/pdp8/hd6120.cpp index dccd84ad526..769a41d8b5b 100644 --- a/src/devices/cpu/pdp8/hd6120.cpp +++ b/src/devices/cpu/pdp8/hd6120.cpp @@ -664,7 +664,13 @@ void hd6120_device::execute_run() case minor_state::OP1_1: m_pc = m_temp & 07777; - m_temp = ((BIT(m_ir, 7) ? 0 : m_ac) ^ (BIT(m_ir, 5) ? 07777 : 0)) + (m_ir & 0001); + m_temp = (BIT(m_ir, 7) ? 0 : m_ac) ^ (BIT(m_ir, 5) ? 07777 : 0); + if (BIT(m_ir, 0)) + { + ++m_temp; + if (m_temp >= 010000) + m_flags ^= 4; // LINK is complemented upon carry out + } m_state = minor_state::OP1_2; break; |