mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
-netlist: Properly fixed 74165 implementation. Fixed MK28000 address latching.
This commit is contained in:
parent
dd47a15e3a
commit
96921ccac9
@ -56,7 +56,6 @@ namespace netlist
|
||||
NETLIB_HANDLERI(inputs)
|
||||
{
|
||||
{
|
||||
netlist_sig_t old_qh = m_QH.net().Q();
|
||||
netlist_sig_t qh = 0;
|
||||
|
||||
if (!m_SH_LDQ())
|
||||
@ -65,12 +64,7 @@ namespace netlist
|
||||
for (std::size_t i=0; i<8; i++)
|
||||
m_shifter |= (m_DATA[i]() << i);
|
||||
}
|
||||
else if (!m_CLK() || m_CLKINH())
|
||||
{
|
||||
// FIXME: qh is overwritten below?
|
||||
qh = old_qh;
|
||||
}
|
||||
else if (!m_last_CLK)
|
||||
else if (m_CLK() && !m_last_CLK && !m_CLKINH())
|
||||
{
|
||||
unsigned high_bit = m_SER() ? 0x80 : 0;
|
||||
m_shifter = high_bit | (m_shifter >> 1);
|
||||
@ -81,6 +75,7 @@ namespace netlist
|
||||
m_last_CLK = m_CLK();
|
||||
|
||||
m_QH.push(qh, NLTIME_FROM_NS(20)); // FIXME: Timing
|
||||
m_QHQ.push(1 - qh, NLTIME_FROM_NS(20)); // FIXME: Timing
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ namespace netlist
|
||||
, m_enable_hi(*this, "m_enable_hi", false)
|
||||
, m_latched_rom(*this, "m_latched_rom", 0)
|
||||
, m_A(*this, 1, "A{}", NETLIB_DELEGATE(addr))
|
||||
, m_ARQ(*this, "ARQ", NETLIB_DELEGATE(arq))
|
||||
, m_ARQ(*this, "ARQ", NETLIB_DELEGATE(addr))
|
||||
, m_OE1(*this, "OE1", NETLIB_DELEGATE(oe1))
|
||||
, m_OE2(*this, "OE2", NETLIB_DELEGATE(oe2))
|
||||
, m_O(*this, 1, "O{}", 0)
|
||||
@ -41,14 +41,6 @@ namespace netlist
|
||||
}
|
||||
|
||||
private:
|
||||
inline NETLIB_HANDLERI(arq)
|
||||
{
|
||||
if (m_ARQ() == 0)
|
||||
{
|
||||
m_latched_rom = m_ROM[m_A()];
|
||||
}
|
||||
}
|
||||
|
||||
inline NETLIB_HANDLERI(oe1)
|
||||
{
|
||||
m_enable_lo = m_OE1();
|
||||
@ -73,6 +65,11 @@ namespace netlist
|
||||
|
||||
inline NETLIB_HANDLERI(addr)
|
||||
{
|
||||
if (!m_ARQ())
|
||||
{
|
||||
uint16_t addr = m_A();
|
||||
m_latched_rom = m_ROM[addr];
|
||||
}
|
||||
uint8_t o = (m_enable_hi || m_enable_lo) ? m_latched_rom : 0;
|
||||
for (std::size_t i=0; i<4; i++)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user