netlist: Fix an issue during proxy hookup.

* Add cd4053 to netlist.lua
* Recreated nld_devinc.h
This commit is contained in:
couriersud 2020-07-28 20:44:04 +02:00
parent 179d03ac96
commit c7359e0aea
3 changed files with 41 additions and 20 deletions

View File

@ -140,6 +140,8 @@ project "netlist"
MAME_DIR .. "src/lib/netlist/devices/nld_4013.h",
MAME_DIR .. "src/lib/netlist/devices/nld_4020.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_4020.h",
MAME_DIR .. "src/lib/netlist/devices/nld_4053.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_4053.h",
MAME_DIR .. "src/lib/netlist/devices/nld_4066.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_4066.h",
MAME_DIR .. "src/lib/netlist/devices/nld_4316.cpp",

View File

@ -923,7 +923,7 @@
NET_REGISTER_DEVEXT(MM5837_DIP, __VA_ARGS__)
// ---------------------------------------------------------------------
// Source: src/lib/netlist/macro/nlm_ttl74xx.cpp
// Source: TTL74XX_lib
// ---------------------------------------------------------------------
// usage : TTL_7400_GATE(name)
#define TTL_7400_GATE(...) \
@ -1104,6 +1104,9 @@
#define DM9312(...) \
NET_REGISTER_DEVEXT(DM9312, __VA_ARGS__)
// ---------------------------------------------------------------------
// Source: parser: TTL74XX_lib
// ---------------------------------------------------------------------
// usage : TTL_7400_DIP(name)
#define TTL_7400_DIP(...) \
NET_REGISTER_DEVEXT(TTL_7400_DIP, __VA_ARGS__)
@ -1245,12 +1248,16 @@
NET_REGISTER_DEVEXT(DM9312_DIP, __VA_ARGS__)
// ---------------------------------------------------------------------
// Source: src/lib/netlist/macro/nlm_cd4xxx.cpp
// Source: CD4XXX_lib
// ---------------------------------------------------------------------
// usage : CD4001_GATE(name)
#define CD4001_GATE(...) \
NET_REGISTER_DEVEXT(CD4001_GATE, __VA_ARGS__)
// usage : CD4011_GATE(name)
#define CD4011_GATE(...) \
NET_REGISTER_DEVEXT(CD4011_GATE, __VA_ARGS__)
// usage : CD4069_GATE(name)
#define CD4069_GATE(...) \
NET_REGISTER_DEVEXT(CD4069_GATE, __VA_ARGS__)
@ -1259,6 +1266,9 @@
#define CD4070_GATE(...) \
NET_REGISTER_DEVEXT(CD4070_GATE, __VA_ARGS__)
// ---------------------------------------------------------------------
// Source: parser: CD4XXX_lib
// ---------------------------------------------------------------------
// usage : CD4001_DIP(name)
#define CD4001_DIP(...) \
NET_REGISTER_DEVEXT(CD4001_DIP, __VA_ARGS__)
@ -1287,10 +1297,6 @@
#define CD4024_DIP(...) \
NET_REGISTER_DEVEXT(CD4024_DIP, __VA_ARGS__)
// usage : CD4016_DIP(name)
#define CD4016_DIP(...) \
NET_REGISTER_DEVEXT(CD4016_DIP, __VA_ARGS__)
// usage : CD4053_DIP(name)
#define CD4053_DIP(...) \
NET_REGISTER_DEVEXT(CD4053_DIP, __VA_ARGS__)
@ -1299,6 +1305,10 @@
#define CD4066_DIP(...) \
NET_REGISTER_DEVEXT(CD4066_DIP, __VA_ARGS__)
// usage : CD4016_DIP(name)
#define CD4016_DIP(...) \
NET_REGISTER_DEVEXT(CD4016_DIP, __VA_ARGS__)
// usage : CD4316_DIP(name)
#define CD4316_DIP(...) \
NET_REGISTER_DEVEXT(CD4316_DIP, __VA_ARGS__)
@ -1308,7 +1318,7 @@
NET_REGISTER_DEVEXT(CD4538_DIP, __VA_ARGS__)
// ---------------------------------------------------------------------
// Source: src/lib/netlist/macro/nlm_opamp.cpp
// Source: parser: OPAMP_lib
// ---------------------------------------------------------------------
// usage : opamp_layout_4_4_11(name)
#define opamp_layout_4_4_11(...) \
@ -1383,12 +1393,15 @@
NET_REGISTER_DEVEXT(LM3900, __VA_ARGS__)
// ---------------------------------------------------------------------
// Source: src/lib/netlist/macro/nlm_other.cpp
// Source: otheric_lib
// ---------------------------------------------------------------------
// usage : MC14584B_GATE(name)
#define MC14584B_GATE(...) \
NET_REGISTER_DEVEXT(MC14584B_GATE, __VA_ARGS__)
// ---------------------------------------------------------------------
// Source: parser: otheric_lib
// ---------------------------------------------------------------------
// usage : MC14584B_DIP(name)
#define MC14584B_DIP(...) \
NET_REGISTER_DEVEXT(MC14584B_DIP, __VA_ARGS__)
@ -1398,7 +1411,7 @@
NET_REGISTER_DEVEXT(NE566_DIP, __VA_ARGS__)
// ---------------------------------------------------------------------
// Source: src/lib/netlist/macro/nlm_roms.cpp
// Source: parser: ROMS_lib
// ---------------------------------------------------------------------
// usage : PROM_82S123_DIP(name)
#define PROM_82S123_DIP(...) \

View File

@ -733,9 +733,8 @@ devices::nld_base_proxy *setup_t::get_a_d_proxy(detail::core_terminal_t &inp)
return iter_proxy->second;
log().debug("connect_terminal_input: connecting proxy\n");
pstring x = plib::pfmt("proxy_ad_{1}_{2}")(inp.name())(m_proxy_cnt);
auto new_proxy = incast.logic_family()->create_a_d_proxy(m_nlstate, x, &incast);
//auto new_proxy = plib::owned_ptr<devices::nld_a_to_d_proxy>::Create(netlist(), x, &incast);
auto new_proxy = incast.logic_family()->create_a_d_proxy(m_nlstate,
plib::pfmt("proxy_ad_{1}_{2}")(inp.name())(m_proxy_cnt), &incast);
auto *ret(new_proxy.get());
@ -748,20 +747,25 @@ devices::nld_base_proxy *setup_t::get_a_d_proxy(detail::core_terminal_t &inp)
if (inp.has_net())
{
for (auto & p : inp.net().core_terms())
for (detail::core_terminal_t * p : inp.net().core_terms())
{
p->clear_net(); // de-link from all nets ...
if (!connect(ret->proxy_term(), *p))
// inp may already belongs to the logic net. Thus skip it here.
// It will be removed by the clear further down.
if (p != &inp)
{
log().fatal(MF_CONNECTING_1_TO_2(
ret->proxy_term().name(), (*p).name()));
throw nl_exception(MF_CONNECTING_1_TO_2(
ret->proxy_term().name(), (*p).name()));
p->clear_net(); // de-link from all nets ...
if (!connect(ret->proxy_term(), *p))
{
log().fatal(MF_CONNECTING_1_TO_2(
ret->proxy_term().name(), (*p).name()));
throw nl_exception(MF_CONNECTING_1_TO_2(
ret->proxy_term().name(), (*p).name()));
}
}
}
inp.net().core_terms().clear(); // clear the list
}
inp.clear_net();
add_terminal(ret->out().net(), inp);
m_nlstate.register_device(new_proxy->name(), std::move(new_proxy));
return ret;
@ -1012,7 +1016,9 @@ bool setup_t::connect(detail::core_terminal_t &t1_in, detail::core_terminal_t &t
ret = connect_input_input(t1, t2);
}
else
{
ret = false;
}
return ret;
}