summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/devices/nld_82S16.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/devices/nld_82S16.cpp')
-rw-r--r--src/lib/netlist/devices/nld_82S16.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/netlist/devices/nld_82S16.cpp b/src/lib/netlist/devices/nld_82S16.cpp
index 07990ffa598..593ea1b0d89 100644
--- a/src/lib/netlist/devices/nld_82S16.cpp
+++ b/src/lib/netlist/devices/nld_82S16.cpp
@@ -22,7 +22,7 @@ NETLIB_UPDATE(82S16)
}
else
{
- int adr = 0;
+ unsigned int adr = 0;
for (int i=0; i<8; i++)
{
//m_A[i].activate();
@@ -31,9 +31,9 @@ NETLIB_UPDATE(82S16)
if (!INPLOGIC(m_WEQ))
{
- m_ram[adr] = INPLOGIC(m_DIN);
+ m_ram[adr >> 6] = (m_ram[adr >> 6] & ~((UINT64) 1 << (adr & 0x3f))) | ((UINT64) INPLOGIC(m_DIN) << (adr & 0x3f));
}
- OUTLOGIC(m_DOUTQ, m_ram[adr] ^ 1, NLTIME_FROM_NS(20));
+ OUTLOGIC(m_DOUTQ, ((m_ram[adr >> 6] >> (adr & 0x3f)) & 1) ^ 1, NLTIME_FROM_NS(20));
}
}
@@ -62,7 +62,7 @@ NETLIB_START(82S16)
NETLIB_RESET(82S16)
{
- for (int i=0; i<256; i++)
+ for (int i=0; i<4; i++)
{
m_ram[i] = 0;
}