diff options
author | 2020-08-15 12:58:01 -0400 | |
---|---|---|
committer | 2020-08-15 12:58:01 -0400 | |
commit | 3d0632bab74f6bd883e9aeefc57ab086c3b6c8d4 (patch) | |
tree | 170d05c90a3f9ce494b08f634aa90d553f60d801 /src/devices/cpu/upd7810/upd7810_opcodes.cpp | |
parent | 120ae6a73bfdad5dbe9b700c95caa929ac5c12fd (diff) |
upd7810: Fix semantics of SKIT NMI and SKNIT NMI; simplify analog input code
Diffstat (limited to 'src/devices/cpu/upd7810/upd7810_opcodes.cpp')
-rw-r--r-- | src/devices/cpu/upd7810/upd7810_opcodes.cpp | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/devices/cpu/upd7810/upd7810_opcodes.cpp b/src/devices/cpu/upd7810/upd7810_opcodes.cpp index 3bb2233df21..dd610a40ff1 100644 --- a/src/devices/cpu/upd7810/upd7810_opcodes.cpp +++ b/src/devices/cpu/upd7810/upd7810_opcodes.cpp @@ -323,7 +323,10 @@ void upd7810_device::DIV_B() B = remainder; } else - EA = 0xffff; /* guess */ + { + B = EAL; + EA = 0xffff; + } } /* 48 3f: 0100 1000 0011 1111 */ @@ -337,15 +340,18 @@ void upd7810_device::DIV_C() C = remainder; } else - EA = 0xffff; /* guess */ + { + C = EAL; + EA = 0xffff; + } } /* 48 40: 0100 1000 0100 0000 */ void upd7810_device::SKIT_NMI() { - if (IRR & INTNMI) + if (m_nmi == CLEAR_LINE) // 1 pin level PSW |= SK; - IRR &= ~INTNMI; + // INTFNMI is not tested or changed } /* 48 41: 0100 1000 0100 0001 */ @@ -487,9 +493,9 @@ void upd7810_device::SKIT_SB() /* 48 60: 0100 1000 0110 0000 */ void upd7810_device::SKNIT_NMI() { - if (0 == (IRR & INTNMI)) + if (m_nmi == ASSERT_LINE) // 0 pin level PSW |= SK; - IRR &= ~INTNMI; + // INTFNMI is not tested or changed } /* 48 61: 0100 1000 0110 0001 */ @@ -931,25 +937,25 @@ void upd7810_device::MOV_A_RXB() /* 4c e0: 0100 1100 1110 0000 */ void upd7810_device::MOV_A_CR0() { - A = CR0; + A = CR[0]; } /* 4c e1: 0100 1100 1110 0001 */ void upd7810_device::MOV_A_CR1() { - A = CR1; + A = CR[1]; } /* 4c e2: 0100 1100 1110 0010 */ void upd7810_device::MOV_A_CR2() { - A = CR2; + A = CR[2]; } /* 4c e3: 0100 1100 1110 0011 */ void upd7810_device::MOV_A_CR3() { - A = CR3; + A = CR[3]; } /* prefix 4D */ |