From 75146fd159f63b96c338ed8db7405b8bca048821 Mon Sep 17 00:00:00 2001 From: couriersud Date: Fri, 1 Feb 2019 22:46:12 +0100 Subject: netlist: All devices now specify parameters in factory constructor. (nw) This previously was part of net_lib.cpp and repeatedly caused bugs. --- src/lib/netlist/analog/nld_bjt.cpp | 4 +- src/lib/netlist/analog/nld_opamps.cpp | 2 +- src/lib/netlist/analog/nld_switches.cpp | 4 +- src/lib/netlist/analog/nlid_fourterm.cpp | 8 +- src/lib/netlist/analog/nlid_twoterm.cpp | 16 +- src/lib/netlist/devices/net_lib.cpp | 277 +++++++++++++++---------------- src/lib/netlist/devices/nld_2102A.cpp | 4 +- src/lib/netlist/devices/nld_2716.cpp | 4 +- src/lib/netlist/devices/nld_4020.cpp | 3 +- src/lib/netlist/devices/nld_4066.cpp | 2 +- src/lib/netlist/devices/nld_4316.cpp | 2 +- src/lib/netlist/devices/nld_74123.cpp | 8 +- src/lib/netlist/devices/nld_74164.cpp | 4 +- src/lib/netlist/devices/nld_74165.cpp | 4 +- src/lib/netlist/devices/nld_74166.cpp | 4 +- src/lib/netlist/devices/nld_74174.cpp | 4 +- src/lib/netlist/devices/nld_74175.cpp | 4 +- src/lib/netlist/devices/nld_74192.cpp | 4 +- src/lib/netlist/devices/nld_74193.cpp | 4 +- src/lib/netlist/devices/nld_74194.cpp | 4 +- src/lib/netlist/devices/nld_74365.cpp | 4 +- src/lib/netlist/devices/nld_7475.cpp | 8 +- src/lib/netlist/devices/nld_74ls629.cpp | 4 +- src/lib/netlist/devices/nld_82S115.cpp | 4 +- src/lib/netlist/devices/nld_82S123.cpp | 4 +- src/lib/netlist/devices/nld_82S126.cpp | 4 +- src/lib/netlist/devices/nld_82S16.cpp | 4 +- src/lib/netlist/devices/nld_9310.cpp | 4 +- src/lib/netlist/devices/nld_9316.cpp | 4 +- src/lib/netlist/devices/nld_9322.cpp | 4 +- src/lib/netlist/devices/nld_am2847.cpp | 4 +- src/lib/netlist/devices/nld_dm9314.cpp | 4 +- src/lib/netlist/devices/nld_dm9334.cpp | 4 +- src/lib/netlist/devices/nld_legacy.cpp | 4 +- src/lib/netlist/devices/nld_log.cpp | 4 +- src/lib/netlist/devices/nld_mm5837.cpp | 2 +- src/lib/netlist/devices/nld_ne555.cpp | 4 +- src/lib/netlist/devices/nld_r2r_dac.cpp | 2 +- src/lib/netlist/devices/nld_schmitt.cpp | 2 +- src/lib/netlist/devices/nld_system.cpp | 24 +-- src/lib/netlist/devices/nld_tms4800.cpp | 4 +- src/lib/netlist/devices/nld_tristate.cpp | 4 +- src/lib/netlist/nl_factory.cpp | 140 ++++++++-------- src/lib/netlist/nl_factory.h | 36 ++-- src/lib/netlist/solver/nld_solver.cpp | 2 +- 45 files changed, 317 insertions(+), 333 deletions(-) diff --git a/src/lib/netlist/analog/nld_bjt.cpp b/src/lib/netlist/analog/nld_bjt.cpp index cf963465b09..bd2e55e145f 100644 --- a/src/lib/netlist/analog/nld_bjt.cpp +++ b/src/lib/netlist/analog/nld_bjt.cpp @@ -430,8 +430,8 @@ NETLIB_UPDATE_PARAM(QBJT_EB) } //namespace analog namespace devices { - NETLIB_DEVICE_IMPL_NS(analog, QBJT_EB) - NETLIB_DEVICE_IMPL_NS(analog, QBJT_switch) + NETLIB_DEVICE_IMPL_NS(analog, QBJT_EB, "QBJT_EB", "MODEL") + NETLIB_DEVICE_IMPL_NS(analog, QBJT_switch, "QBJT_SW", "MODEL") } } // namespace netlist diff --git a/src/lib/netlist/analog/nld_opamps.cpp b/src/lib/netlist/analog/nld_opamps.cpp index 416fdbd76ee..b65ff0a9edd 100644 --- a/src/lib/netlist/analog/nld_opamps.cpp +++ b/src/lib/netlist/analog/nld_opamps.cpp @@ -239,6 +239,6 @@ namespace netlist } //namespace analog namespace devices { - NETLIB_DEVICE_IMPL_NS(analog, opamp) + NETLIB_DEVICE_IMPL_NS(analog, opamp, "OPAMP", "MODEL") } } // namespace netlist diff --git a/src/lib/netlist/analog/nld_switches.cpp b/src/lib/netlist/analog/nld_switches.cpp index 1ecfae06f9d..a2494553988 100644 --- a/src/lib/netlist/analog/nld_switches.cpp +++ b/src/lib/netlist/analog/nld_switches.cpp @@ -136,7 +136,7 @@ namespace netlist } //namespace analog namespace devices { - NETLIB_DEVICE_IMPL_NS(analog, switch1) - NETLIB_DEVICE_IMPL_NS(analog, switch2) + NETLIB_DEVICE_IMPL_NS(analog, switch1, "SWITCH", "") + NETLIB_DEVICE_IMPL_NS(analog, switch2, "SWITCH2", "") } } // namespace netlist diff --git a/src/lib/netlist/analog/nlid_fourterm.cpp b/src/lib/netlist/analog/nlid_fourterm.cpp index 89784812fbe..7cd9bd83561 100644 --- a/src/lib/netlist/analog/nlid_fourterm.cpp +++ b/src/lib/netlist/analog/nlid_fourterm.cpp @@ -116,9 +116,9 @@ NETLIB_RESET(VCVS) } //namespace analog namespace devices { - NETLIB_DEVICE_IMPL_NS(analog, VCVS) - NETLIB_DEVICE_IMPL_NS(analog, VCCS) - NETLIB_DEVICE_IMPL_NS(analog, CCCS) - NETLIB_DEVICE_IMPL_NS(analog, LVCCS) + NETLIB_DEVICE_IMPL_NS(analog, VCVS, "VCVS", "") + NETLIB_DEVICE_IMPL_NS(analog, VCCS, "VCCS", "") + NETLIB_DEVICE_IMPL_NS(analog, CCCS, "CCCS", "") + NETLIB_DEVICE_IMPL_NS(analog, LVCCS, "LVCCS", "") } } // namespace netlist diff --git a/src/lib/netlist/analog/nlid_twoterm.cpp b/src/lib/netlist/analog/nlid_twoterm.cpp index 3b57279ffca..4e3c001030d 100644 --- a/src/lib/netlist/analog/nlid_twoterm.cpp +++ b/src/lib/netlist/analog/nlid_twoterm.cpp @@ -271,14 +271,14 @@ NETLIB_UPDATE_TERMINALS(D) } //namespace analog namespace devices { - NETLIB_DEVICE_IMPL_NS(analog, R) - NETLIB_DEVICE_IMPL_NS(analog, POT) - NETLIB_DEVICE_IMPL_NS(analog, POT2) - NETLIB_DEVICE_IMPL_NS(analog, C) - NETLIB_DEVICE_IMPL_NS(analog, L) - NETLIB_DEVICE_IMPL_NS(analog, D) - NETLIB_DEVICE_IMPL_NS(analog, VS) - NETLIB_DEVICE_IMPL_NS(analog, CS) + NETLIB_DEVICE_IMPL_NS(analog, R, "RES", "R") + NETLIB_DEVICE_IMPL_NS(analog, POT, "POT", "R") + NETLIB_DEVICE_IMPL_NS(analog, POT2, "POT2", "R") + NETLIB_DEVICE_IMPL_NS(analog, C, "CAP", "C") + NETLIB_DEVICE_IMPL_NS(analog, L, "IND", "L") + NETLIB_DEVICE_IMPL_NS(analog, D, "DIODE", "MODEL") + NETLIB_DEVICE_IMPL_NS(analog, VS, "VS", "V") + NETLIB_DEVICE_IMPL_NS(analog, CS, "CS", "I") } } // namespace netlist diff --git a/src/lib/netlist/devices/net_lib.cpp b/src/lib/netlist/devices/net_lib.cpp index 3ab864b67e1..fe1e9ee86b0 100644 --- a/src/lib/netlist/devices/net_lib.cpp +++ b/src/lib/netlist/devices/net_lib.cpp @@ -17,149 +17,148 @@ #define NETLIB_DEVICE_DECL(chip) extern factory::constructor_ptr_t decl_ ## chip -#define ENTRYX1(nic, name, defparam, decl) factory.register_device( decl (pstring(# name), pstring(xstr(nic)), pstring(defparam)) ); -#define ENTRYX(nic, name, defparam) { NETLIB_DEVICE_DECL(nic); ENTRYX1(NETLIB_NAME(nic), name, defparam, decl_ ## nic) } - -#define ENTRYX1_N(nic, decl) factory.register_device( decl (pstring(""), pstring(xstr(nic)), pstring("")) ); -#define ENTRYX_N(nic) { NETLIB_DEVICE_DECL(nic); ENTRYX1_N(NETLIB_NAME(nic), decl_ ## nic) } +#define LIB_DECL(nic, decl) factory.register_device( decl ( pstring(xstr(nic))) ); +#define LIB_ENTRY(nic) { NETLIB_DEVICE_DECL(nic); LIB_DECL(NETLIB_NAME(nic), decl_ ## nic) } namespace netlist { - namespace devices - { - void initialize_factory(factory::list_t &factory) +namespace devices { - ENTRYX(R, RES, "R") - ENTRYX(POT, POT, "R") - ENTRYX(POT2, POT2, "R") - ENTRYX(C, CAP, "C") - ENTRYX(L, IND, "L") - ENTRYX(D, DIODE, "MODEL") - ENTRYX(VS, VS, "V") - ENTRYX(CS, CS, "I") - ENTRYX(VCVS, VCVS, "") - ENTRYX(VCCS, VCCS, "") - ENTRYX(CCCS, CCCS, "") - ENTRYX(LVCCS, LVCCS, "") - ENTRYX(opamp, OPAMP, "MODEL") - ENTRYX(dummy_input, DUMMY_INPUT, "") - ENTRYX(frontier, FRONTIER_DEV, "+I,+G,+Q") // not intended to be used directly - ENTRYX(function, AFUNC, "N,FUNC") // only for macro devices - NO FEEDBACK loops - ENTRYX(QBJT_EB, QBJT_EB, "MODEL") - ENTRYX(QBJT_switch, QBJT_SW, "MODEL") - ENTRYX(logic_input, TTL_INPUT, "IN") - ENTRYX(logic_input, LOGIC_INPUT, "IN,FAMILY") - ENTRYX(analog_input, ANALOG_INPUT, "IN") - ENTRYX(log, LOG, "+I") - ENTRYX(logD, LOGD, "+I,+I2") - ENTRYX(clock, CLOCK, "FREQ") - ENTRYX(extclock, EXTCLOCK, "FREQ,PATTERN") - ENTRYX(mainclock, MAINCLOCK, "FREQ") - ENTRYX(gnd, GND, "") - ENTRYX(netlistparams, PARAMETER, "") - ENTRYX(solver, SOLVER, "FREQ") - ENTRYX(res_sw, RES_SWITCH, "+IN,+P1,+P2") - ENTRYX(switch1, SWITCH, "") - ENTRYX(switch2, SWITCH2, "") - ENTRYX(nicRSFF, NETDEV_RSFF, "") - ENTRYX(nicDelay, NETDEV_DELAY, "") - ENTRYX(2102A, RAM_2102A, "+CEQ,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+RWQ,+DI") - ENTRYX(2102A_dip, RAM_2102A_DIP, "") - ENTRYX(2716, EPROM_2716, "+GQ,+EPQ,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10") - ENTRYX(2716_dip, EPROM_2716_DIP, "") - ENTRYX_N(7448) - ENTRYX_N(7448_dip) - ENTRYX_N(7450) - ENTRYX_N(7450_dip) - ENTRYX_N(7473) - ENTRYX_N(7473_dip) - ENTRYX_N(7473A) - ENTRYX_N(7473A_dip) - ENTRYX_N(7474) - ENTRYX_N(7474_dip) - ENTRYX(7475, TTL_7475, "") - ENTRYX(7475_dip, TTL_7475_DIP, "") - ENTRYX(7477, TTL_7477, "") - ENTRYX(7477_dip, TTL_7477_DIP, "") - ENTRYX_N(7483) - ENTRYX_N(7483_dip) - ENTRYX_N(7485) - ENTRYX_N(7485_dip) - ENTRYX_N(7490) - ENTRYX_N(7490_dip) - ENTRYX_N(7493) - ENTRYX_N(7493_dip) - ENTRYX_N(7497) - ENTRYX_N(7497_dip) - ENTRYX_N(74107) - ENTRYX_N(74107_dip) - ENTRYX_N(74107A) // FIXME: implement missing DIP - ENTRYX(74123, TTL_74123, "") - ENTRYX(74123_dip, TTL_74123_DIP, "") - ENTRYX_N(74153) - ENTRYX_N(74153_dip) - ENTRYX_N(74161) - ENTRYX_N(74161_dip) - ENTRYX(74164, TTL_74164, "+A,+B,+CLRQ,+CLK") - ENTRYX(74164_dip, TTL_74164_DIP, "") - ENTRYX(74165, TTL_74165, "+CLK,+CLKINH,+SH_LDQ,+SER,+A,+B,+C,+D,+E,+F,+G,+H") - ENTRYX(74165_dip, TTL_74165_DIP, "") - ENTRYX(74166, TTL_74166, "+CLK,+CLKINH,+SH_LDQ,+SER,+A,+B,+C,+D,+E,+F,+G,+H,+CLRQ") - ENTRYX(74166_dip, TTL_74166_DIP, "") - ENTRYX(74174, TTL_74174, "+CLK,+D1,+D2,+D3,+D4,+D5,+D6,+CLRQ") - ENTRYX(74175, TTL_74175, "+CLK,+D1,+D2,+D3,+D4,+CLRQ") - ENTRYX(74192, TTL_74192, "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD") - ENTRYX(74193, TTL_74193, "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD") - ENTRYX(74194, TTL_74194, "+CLK,+S0,+S1,+SRIN,+A,+B,+C,+D,+SLIN,+CLRQ") - ENTRYX(74365, TTL_74365, "+G1Q,+G2Q,+A1,+A2,+A3,+A4,+A5,+A6") - //ENTRY(74279, TTL_74279, "") // only dip available - ENTRYX(SN74LS629, SN74LS629, "CAP") - ENTRYX(82S16, TTL_82S16, "") - ENTRYX(82S115, PROM_82S115, "+CE1Q,+CE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+STROBE") - ENTRYX(82S123, PROM_82S123, "+CEQ,+A0,+A1,+A2,+A3,+A4") - ENTRYX(82S126, PROM_82S126, "+CE1Q,+CE2Q,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7") - ENTRYX(9310, TTL_9310, "") - ENTRYX(9314, TTL_9314, "+EQ,+MRQ,+S0Q,+S1Q,+S2Q,+S3Q,+D0,+D1,+D2,+D3") - ENTRYX(9316, TTL_9316, "+CLK,+ENP,+ENT,+CLRQ,+LOADQ,+A,+B,+C,+D") - ENTRYX(9322, TTL_9322, "+SELECT,+A1,+B1,+A2,+B2,+A3,+B3,+A4,+B4,+STROBE") - ENTRYX(9334, TTL_9334, "+CQ,+EQ,+D,+A0,+A1,+A2") - ENTRYX(AM2847, TTL_AM2847, "+CP,+INA,+INB,+INC,+IND,+RCA,+RCB,+RCC,+RCD") - ENTRYX(CD4020, CD4020_WI, "+IP,+RESET,+VDD,+VSS") - ENTRYX(CD4020, CD4020, "") - ENTRYX(CD4066_GATE, CD4066_GATE, "") - ENTRYX(CD4316_GATE, CD4316_GATE, "") - ENTRYX(4538_dip, CD4538_DIP, "") - ENTRYX(schmitt_trigger, SCHMITT_TRIGGER, "MODEL") - /* entries with suffix WI are legacy only */ - //ENTRY(4066, CD_4066, "+A,B") - ENTRYX(NE555, NE555, "") - ENTRYX(TMS4800, ROM_TMS4800, "+AR,+OE1,+OE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10") - ENTRYX(TMS4800_dip, ROM_TMS4800_DIP, "") - ENTRYX(r2r_dac, R2R_DAC, "VIN,R,N") - ENTRYX(tristate, TTL_TRISTATE, "+CEQ1,+D1,+CEQ2,+D2") - ENTRYX(tristate3, TTL_TRISTATE3, "") - ENTRYX(74174_dip, TTL_74174_DIP, "") - ENTRYX(74175_dip, TTL_74175_DIP, "") - ENTRYX(74192_dip, TTL_74192_DIP, "") - ENTRYX(74193_dip, TTL_74193_DIP, "") - ENTRYX(74194_dip, TTL_74194_DIP, "") - ENTRYX(74365_dip, TTL_74365_DIP, "") - ENTRYX(82S16_dip, TTL_82S16_DIP, "") - ENTRYX(82S115_dip, PROM_82S115_DIP, "") - ENTRYX(82S123_dip, PROM_82S123_DIP, "") - ENTRYX(82S126_dip, PROM_82S126_DIP, "") - ENTRYX(9602_dip, TTL_9602_DIP, "") - ENTRYX(9310_dip, TTL_9310_DIP, "") - ENTRYX(9314_dip, TTL_9314_DIP, "") - ENTRYX(9316_dip, TTL_9316_DIP, "") - ENTRYX(9322_dip, TTL_9322_DIP, "") - ENTRYX(9334_dip, TTL_9334_DIP, "") - ENTRYX(AM2847_dip, TTL_AM2847_DIP, "") - ENTRYX(SN74LS629_dip, SN74LS629_DIP, "1.CAP1,2.CAP2") - ENTRYX(NE555_dip, NE555_DIP, "") - ENTRYX(MM5837_dip, MM5837_DIP, "") -} - } //namespace devices + void initialize_factory(factory::list_t &factory) + { + LIB_ENTRY(R) + LIB_ENTRY(POT) + LIB_ENTRY(POT2) + LIB_ENTRY(C) + LIB_ENTRY(L) + LIB_ENTRY(D) + LIB_ENTRY(VS) + LIB_ENTRY(CS) + LIB_ENTRY(VCVS) + LIB_ENTRY(VCCS) + LIB_ENTRY(CCCS) + LIB_ENTRY(LVCCS) + LIB_ENTRY(opamp) + LIB_ENTRY(dummy_input) + LIB_ENTRY(frontier) // not intended to be used directly + LIB_ENTRY(function) // only for macro devices - NO FEEDBACK loops + LIB_ENTRY(QBJT_EB) + LIB_ENTRY(QBJT_switch) + LIB_ENTRY(logic_input_ttl) + LIB_ENTRY(logic_input) + LIB_ENTRY(analog_input) + LIB_ENTRY(log) + LIB_ENTRY(logD) + LIB_ENTRY(clock) + LIB_ENTRY(extclock) + LIB_ENTRY(mainclock) + LIB_ENTRY(gnd) + LIB_ENTRY(netlistparams) + LIB_ENTRY(solver) + LIB_ENTRY(res_sw) + LIB_ENTRY(switch1) + LIB_ENTRY(switch2) + LIB_ENTRY(nicRSFF) + LIB_ENTRY(nicDelay) + LIB_ENTRY(2102A) + LIB_ENTRY(2102A_dip) + LIB_ENTRY(2716) + LIB_ENTRY(2716_dip) + LIB_ENTRY(7448) + LIB_ENTRY(7448_dip) + LIB_ENTRY(7450) + LIB_ENTRY(7450_dip) + LIB_ENTRY(7473) + LIB_ENTRY(7473_dip) + LIB_ENTRY(7473A) + LIB_ENTRY(7473A_dip) + LIB_ENTRY(7474) + LIB_ENTRY(7474_dip) + LIB_ENTRY(7475) + LIB_ENTRY(7475_dip) + LIB_ENTRY(7477) + LIB_ENTRY(7477_dip) + LIB_ENTRY(7483) + LIB_ENTRY(7483_dip) + LIB_ENTRY(7485) + LIB_ENTRY(7485_dip) + LIB_ENTRY(7490) + LIB_ENTRY(7490_dip) + LIB_ENTRY(7493) + LIB_ENTRY(7493_dip) + LIB_ENTRY(7497) + LIB_ENTRY(7497_dip) + LIB_ENTRY(74107) + LIB_ENTRY(74107_dip) + LIB_ENTRY(74107A) // FIXME: implement missing DIP + LIB_ENTRY(74123) + LIB_ENTRY(74123_dip) + LIB_ENTRY(74153) + LIB_ENTRY(74153_dip) + LIB_ENTRY(74161) + LIB_ENTRY(74161_dip) + LIB_ENTRY(74164) + LIB_ENTRY(74164_dip) + LIB_ENTRY(74165) + LIB_ENTRY(74165_dip) + LIB_ENTRY(74166) + LIB_ENTRY(74166_dip) + LIB_ENTRY(74174) + LIB_ENTRY(74175) + LIB_ENTRY(74192) + LIB_ENTRY(74193) + LIB_ENTRY(74194) + LIB_ENTRY(74365) + //ENTRY(74279, TTL_74279, "") // only dip available + LIB_ENTRY(SN74LS629) + LIB_ENTRY(82S16) + LIB_ENTRY(82S115) + LIB_ENTRY(82S123) + LIB_ENTRY(82S126) + LIB_ENTRY(9310) + LIB_ENTRY(9314) + LIB_ENTRY(9316) + LIB_ENTRY(9322) + LIB_ENTRY(9334) + LIB_ENTRY(AM2847) + // FIXME: duplicate? + LIB_ENTRY(CD4020_WI) + LIB_ENTRY(CD4020) + LIB_ENTRY(CD4066_GATE) + LIB_ENTRY(CD4316_GATE) + LIB_ENTRY(4538_dip) + LIB_ENTRY(schmitt_trigger) + /* entries with suffix WI are legacy only */ + //ENTRY(4066, CD_4066, "+A,B") + LIB_ENTRY(NE555) + LIB_ENTRY(TMS4800) + LIB_ENTRY(TMS4800_dip) + LIB_ENTRY(r2r_dac) + LIB_ENTRY(tristate) + LIB_ENTRY(tristate3) + LIB_ENTRY(74174_dip) + LIB_ENTRY(74175_dip) + LIB_ENTRY(74192_dip) + LIB_ENTRY(74193_dip) + LIB_ENTRY(74194_dip) + LIB_ENTRY(74365_dip) + LIB_ENTRY(82S16_dip) + LIB_ENTRY(82S115_dip) + LIB_ENTRY(82S123_dip) + LIB_ENTRY(82S126_dip) + LIB_ENTRY(9602_dip) + LIB_ENTRY(9310_dip) + LIB_ENTRY(9314_dip) + LIB_ENTRY(9316_dip) + LIB_ENTRY(9322_dip) + LIB_ENTRY(9334_dip) + LIB_ENTRY(AM2847_dip) + LIB_ENTRY(SN74LS629_dip) + LIB_ENTRY(NE555_dip) + LIB_ENTRY(MM5837_dip) + } + +} //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_2102A.cpp b/src/lib/netlist/devices/nld_2102A.cpp index 3a84dcc7aec..b364e7ff448 100644 --- a/src/lib/netlist/devices/nld_2102A.cpp +++ b/src/lib/netlist/devices/nld_2102A.cpp @@ -97,8 +97,8 @@ namespace netlist m_ram[i] = 0; } - NETLIB_DEVICE_IMPL_DEPRECATED(2102A) - NETLIB_DEVICE_IMPL_DEPRECATED(2102A_dip) + NETLIB_DEVICE_IMPL(2102A, "RAM_2102A", "+CEQ,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+RWQ,+DI") + NETLIB_DEVICE_IMPL(2102A_dip,"RAM_2102A_DIP","") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_2716.cpp b/src/lib/netlist/devices/nld_2716.cpp index 4f1438ddb76..b9f5deca132 100644 --- a/src/lib/netlist/devices/nld_2716.cpp +++ b/src/lib/netlist/devices/nld_2716.cpp @@ -92,8 +92,8 @@ namespace netlist m_D[i].push((d >> i) & 1, delay); } - NETLIB_DEVICE_IMPL_DEPRECATED(2716) - NETLIB_DEVICE_IMPL_DEPRECATED(2716_dip) + NETLIB_DEVICE_IMPL(2716, "EPROM_2716", "+GQ,+EPQ,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10") + NETLIB_DEVICE_IMPL(2716_dip, "EPROM_2716_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_4020.cpp b/src/lib/netlist/devices/nld_4020.cpp index b305c16ec7a..35daf46d854 100644 --- a/src/lib/netlist/devices/nld_4020.cpp +++ b/src/lib/netlist/devices/nld_4020.cpp @@ -113,7 +113,8 @@ namespace netlist m_Q[i].push((cnt >> i) & 1, out_delayQn[i]); } - NETLIB_DEVICE_IMPL_DEPRECATED(CD4020) + NETLIB_DEVICE_IMPL(CD4020, "CD4020", "") + NETLIB_DEVICE_IMPL_ALIAS(CD4020_WI, CD4020, "CD4020_WI", "+IP,+RESET,+VDD,+VSS") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_4066.cpp b/src/lib/netlist/devices/nld_4066.cpp index 25b001b5151..944f3f0f1c2 100644 --- a/src/lib/netlist/devices/nld_4066.cpp +++ b/src/lib/netlist/devices/nld_4066.cpp @@ -79,7 +79,7 @@ namespace netlist } } - NETLIB_DEVICE_IMPL_DEPRECATED(CD4066_GATE) + NETLIB_DEVICE_IMPL(CD4066_GATE, "CD4066_GATE", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_4316.cpp b/src/lib/netlist/devices/nld_4316.cpp index a95cc67bfc3..b21ff8685f0 100644 --- a/src/lib/netlist/devices/nld_4316.cpp +++ b/src/lib/netlist/devices/nld_4316.cpp @@ -51,6 +51,6 @@ namespace netlist { namespace devices { m_R.m_P.schedule_solve_after(NLTIME_FROM_NS(1)); } - NETLIB_DEVICE_IMPL_DEPRECATED(CD4316_GATE) + NETLIB_DEVICE_IMPL(CD4316_GATE, "CD4316_GATE", "") } } // namesapce netlist::devices diff --git a/src/lib/netlist/devices/nld_74123.cpp b/src/lib/netlist/devices/nld_74123.cpp index 24b79971062..7b8dbc7998b 100644 --- a/src/lib/netlist/devices/nld_74123.cpp +++ b/src/lib/netlist/devices/nld_74123.cpp @@ -306,10 +306,10 @@ namespace netlist m_2.reset(); } - NETLIB_DEVICE_IMPL_DEPRECATED(74123) - NETLIB_DEVICE_IMPL_DEPRECATED(74123_dip) - NETLIB_DEVICE_IMPL_DEPRECATED(4538_dip) - NETLIB_DEVICE_IMPL_DEPRECATED(9602_dip) + NETLIB_DEVICE_IMPL(74123, "TTL_74123", "") + NETLIB_DEVICE_IMPL(74123_dip, "TTL_74123_DIP", "") + NETLIB_DEVICE_IMPL(4538_dip, "CD4538_DIP", "") + NETLIB_DEVICE_IMPL(9602_dip, "TTL_9602_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74164.cpp b/src/lib/netlist/devices/nld_74164.cpp index cac5fe87022..ccc172ef41b 100644 --- a/src/lib/netlist/devices/nld_74164.cpp +++ b/src/lib/netlist/devices/nld_74164.cpp @@ -97,8 +97,8 @@ namespace netlist } } - NETLIB_DEVICE_IMPL_DEPRECATED(74164) - NETLIB_DEVICE_IMPL_DEPRECATED(74164_dip) + NETLIB_DEVICE_IMPL(74164, "TTL_74164", "+A,+B,+CLRQ,+CLK") + NETLIB_DEVICE_IMPL(74164_dip, "TTL_74164_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74165.cpp b/src/lib/netlist/devices/nld_74165.cpp index 7db9f963a90..6ad95da091f 100644 --- a/src/lib/netlist/devices/nld_74165.cpp +++ b/src/lib/netlist/devices/nld_74165.cpp @@ -101,8 +101,8 @@ namespace netlist m_QH.push(qh, NLTIME_FROM_NS(20)); // FIXME: Timing } - NETLIB_DEVICE_IMPL_DEPRECATED(74165) - NETLIB_DEVICE_IMPL_DEPRECATED(74165_dip) + NETLIB_DEVICE_IMPL(74165, "TTL_74165", "+CLK,+CLKINH,+SH_LDQ,+SER,+A,+B,+C,+D,+E,+F,+G,+H") + NETLIB_DEVICE_IMPL(74165_dip, "TTL_74165_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74166.cpp b/src/lib/netlist/devices/nld_74166.cpp index 02a69dce36c..e18191bb308 100644 --- a/src/lib/netlist/devices/nld_74166.cpp +++ b/src/lib/netlist/devices/nld_74166.cpp @@ -121,8 +121,8 @@ namespace netlist m_QH.push(qh, delay); //FIXME } - NETLIB_DEVICE_IMPL_DEPRECATED(74166) - NETLIB_DEVICE_IMPL_DEPRECATED(74166_dip) + NETLIB_DEVICE_IMPL(74166, "TTL_74166", "+CLK,+CLKINH,+SH_LDQ,+SER,+A,+B,+C,+D,+E,+F,+G,+H,+CLRQ") + NETLIB_DEVICE_IMPL(74166_dip,"TTL_74166_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74174.cpp b/src/lib/netlist/devices/nld_74174.cpp index 53ee8053048..23ef77c5db2 100644 --- a/src/lib/netlist/devices/nld_74174.cpp +++ b/src/lib/netlist/devices/nld_74174.cpp @@ -134,8 +134,8 @@ namespace netlist //m_sub.do_reset(); } - NETLIB_DEVICE_IMPL_DEPRECATED(74174) - NETLIB_DEVICE_IMPL_DEPRECATED(74174_dip) + NETLIB_DEVICE_IMPL(74174, "TTL_74174", "+CLK,+D1,+D2,+D3,+D4,+D5,+D6,+CLRQ") + NETLIB_DEVICE_IMPL(74174_dip,"TTL_74174_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74175.cpp b/src/lib/netlist/devices/nld_74175.cpp index f92c70db572..f46f1b90c3e 100644 --- a/src/lib/netlist/devices/nld_74175.cpp +++ b/src/lib/netlist/devices/nld_74175.cpp @@ -111,8 +111,8 @@ namespace netlist m_data = 0xFF; } - NETLIB_DEVICE_IMPL_DEPRECATED(74175) - NETLIB_DEVICE_IMPL_DEPRECATED(74175_dip) + NETLIB_DEVICE_IMPL(74175, "TTL_74175", "+CLK,+D1,+D2,+D3,+D4,+CLRQ") + NETLIB_DEVICE_IMPL(74175_dip,"TTL_74175_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74192.cpp b/src/lib/netlist/devices/nld_74192.cpp index 660a231253f..18b9e42e37e 100644 --- a/src/lib/netlist/devices/nld_74192.cpp +++ b/src/lib/netlist/devices/nld_74192.cpp @@ -162,8 +162,8 @@ namespace netlist m_CARRYQ.push(tCarry, NLTIME_FROM_NS(20)); //FIXME } - NETLIB_DEVICE_IMPL_DEPRECATED(74192) - NETLIB_DEVICE_IMPL_DEPRECATED(74192_dip) + NETLIB_DEVICE_IMPL(74192, "TTL_74192", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD") + NETLIB_DEVICE_IMPL(74192_dip,"TTL_74192_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74193.cpp b/src/lib/netlist/devices/nld_74193.cpp index 66431b749ca..7ba258a2d07 100644 --- a/src/lib/netlist/devices/nld_74193.cpp +++ b/src/lib/netlist/devices/nld_74193.cpp @@ -139,8 +139,8 @@ namespace netlist m_CARRYQ.push(tCarry, NLTIME_FROM_NS(20)); //FIXME timing } - NETLIB_DEVICE_IMPL_DEPRECATED(74193) - NETLIB_DEVICE_IMPL_DEPRECATED(74193_dip) + NETLIB_DEVICE_IMPL(74193, "TTL_74193", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD") + NETLIB_DEVICE_IMPL(74193_dip, "TTL_74193_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74194.cpp b/src/lib/netlist/devices/nld_74194.cpp index 6dcbe1790bf..2fb17ea4f3d 100644 --- a/src/lib/netlist/devices/nld_74194.cpp +++ b/src/lib/netlist/devices/nld_74194.cpp @@ -116,8 +116,8 @@ namespace netlist m_Q[i].push((q >> i) & 1, NLTIME_FROM_NS(26)); // FIXME: Timing } - NETLIB_DEVICE_IMPL_DEPRECATED(74194) - NETLIB_DEVICE_IMPL_DEPRECATED(74194_dip) + NETLIB_DEVICE_IMPL(74194, "TTL_74194", "+CLK,+S0,+S1,+SRIN,+A,+B,+C,+D,+SLIN,+CLRQ") + NETLIB_DEVICE_IMPL(74194_dip, "TTL_74194_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74365.cpp b/src/lib/netlist/devices/nld_74365.cpp index fb4ad027188..3ddc8e3958a 100644 --- a/src/lib/netlist/devices/nld_74365.cpp +++ b/src/lib/netlist/devices/nld_74365.cpp @@ -76,8 +76,8 @@ namespace netlist } } - NETLIB_DEVICE_IMPL_DEPRECATED(74365) - NETLIB_DEVICE_IMPL_DEPRECATED(74365_dip) + NETLIB_DEVICE_IMPL(74365, "TTL_74365", "+G1Q,+G2Q,+A1,+A2,+A3,+A4,+A5,+A6") + NETLIB_DEVICE_IMPL(74365_dip, "TTL_74365_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_7475.cpp b/src/lib/netlist/devices/nld_7475.cpp index 06e3c588081..17caaf6351b 100644 --- a/src/lib/netlist/devices/nld_7475.cpp +++ b/src/lib/netlist/devices/nld_7475.cpp @@ -148,10 +148,10 @@ namespace netlist } - NETLIB_DEVICE_IMPL_DEPRECATED(7475) - NETLIB_DEVICE_IMPL_DEPRECATED(7475_dip) - NETLIB_DEVICE_IMPL_DEPRECATED(7477) - NETLIB_DEVICE_IMPL_DEPRECATED(7477_dip) + NETLIB_DEVICE_IMPL(7475, "TTL_7475", "") + NETLIB_DEVICE_IMPL(7475_dip, "TTL_7475_DIP", "") + NETLIB_DEVICE_IMPL(7477, "TTL_7477", "") + NETLIB_DEVICE_IMPL(7477_dip, "TTL_7477_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74ls629.cpp b/src/lib/netlist/devices/nld_74ls629.cpp index 7017774266f..bdebea3a45e 100644 --- a/src/lib/netlist/devices/nld_74ls629.cpp +++ b/src/lib/netlist/devices/nld_74ls629.cpp @@ -234,8 +234,8 @@ namespace netlist } } - NETLIB_DEVICE_IMPL_DEPRECATED(SN74LS629) - NETLIB_DEVICE_IMPL_DEPRECATED(SN74LS629_dip) + NETLIB_DEVICE_IMPL(SN74LS629, "SN74LS629", "CAP") + NETLIB_DEVICE_IMPL(SN74LS629_dip, "SN74LS629_DIP", "1.CAP1,2.CAP2") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_82S115.cpp b/src/lib/netlist/devices/nld_82S115.cpp index b2eed7cbd10..02d692b127d 100644 --- a/src/lib/netlist/devices/nld_82S115.cpp +++ b/src/lib/netlist/devices/nld_82S115.cpp @@ -106,8 +106,8 @@ namespace netlist m_O[i].push((o >> i) & 1, NLTIME_FROM_NS(40)); // FIXME: Timing } - NETLIB_DEVICE_IMPL_DEPRECATED(82S115) - NETLIB_DEVICE_IMPL_DEPRECATED(82S115_dip) + NETLIB_DEVICE_IMPL(82S115, "PROM_82S115", "+CE1Q,+CE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+STROBE") + NETLIB_DEVICE_IMPL(82S115_dip, "PROM_82S115_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_82S123.cpp b/src/lib/netlist/devices/nld_82S123.cpp index a4c57ed2d46..18dc696d80a 100644 --- a/src/lib/netlist/devices/nld_82S123.cpp +++ b/src/lib/netlist/devices/nld_82S123.cpp @@ -77,8 +77,8 @@ namespace netlist m_O[i].push((o >> i) & 1, delay); } - NETLIB_DEVICE_IMPL_DEPRECATED(82S123) - NETLIB_DEVICE_IMPL_DEPRECATED(82S123_dip) + NETLIB_DEVICE_IMPL(82S123, "PROM_82S123", "+CEQ,+A0,+A1,+A2,+A3,+A4") + NETLIB_DEVICE_IMPL(82S123_dip, "PROM_82S123_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_82S126.cpp b/src/lib/netlist/devices/nld_82S126.cpp index 7762312c229..59989df604b 100644 --- a/src/lib/netlist/devices/nld_82S126.cpp +++ b/src/lib/netlist/devices/nld_82S126.cpp @@ -79,8 +79,8 @@ namespace netlist m_O[i].push((o >> i) & 1, delay); } - NETLIB_DEVICE_IMPL_DEPRECATED(82S126) - NETLIB_DEVICE_IMPL_DEPRECATED(82S126_dip) + NETLIB_DEVICE_IMPL(82S126, "PROM_82S126", "+CE1Q,+CE2Q,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7") + NETLIB_DEVICE_IMPL(82S126_dip, "PROM_82S126_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_82S16.cpp b/src/lib/netlist/devices/nld_82S16.cpp index 52385cf7e5b..1b3362b40cd 100644 --- a/src/lib/netlist/devices/nld_82S16.cpp +++ b/src/lib/netlist/devices/nld_82S16.cpp @@ -130,8 +130,8 @@ namespace netlist m_enq = 0; } - NETLIB_DEVICE_IMPL_DEPRECATED(82S16) - NETLIB_DEVICE_IMPL_DEPRECATED(82S16_dip) + NETLIB_DEVICE_IMPL(82S16, "TTL_82S16", "") + NETLIB_DEVICE_IMPL(82S16_dip, "TTL_82S16_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_9310.cpp b/src/lib/netlist/devices/nld_9310.cpp index ff708924a37..4348de20417 100644 --- a/src/lib/netlist/devices/nld_9310.cpp +++ b/src/lib/netlist/devices/nld_9310.cpp @@ -263,8 +263,8 @@ namespace netlist #endif } - NETLIB_DEVICE_IMPL_DEPRECATED(9310) - NETLIB_DEVICE_IMPL_DEPRECATED(9310_dip) + NETLIB_DEVICE_IMPL(9310, "TTL_9310", "") + NETLIB_DEVICE_IMPL(9310_dip, "TTL_9310_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_9316.cpp b/src/lib/netlist/devices/nld_9316.cpp index a557a509aca..20858ebc74f 100644 --- a/src/lib/netlist/devices/nld_9316.cpp +++ b/src/lib/netlist/devices/nld_9316.cpp @@ -167,8 +167,8 @@ namespace netlist } - NETLIB_DEVICE_IMPL_DEPRECATED(9316) - NETLIB_DEVICE_IMPL_DEPRECATED(9316_dip) + NETLIB_DEVICE_IMPL(9316, "TTL_9316", "+CLK,+ENP,+ENT,+CLRQ,+LOADQ,+A,+B,+C,+D") + NETLIB_DEVICE_IMPL(9316_dip, "TTL_9316_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_9322.cpp b/src/lib/netlist/devices/nld_9322.cpp index d72b9a561df..854af3d549c 100644 --- a/src/lib/netlist/devices/nld_9322.cpp +++ b/src/lib/netlist/devices/nld_9322.cpp @@ -111,8 +111,8 @@ namespace netlist m_4.update(); } - NETLIB_DEVICE_IMPL_DEPRECATED(9322) - NETLIB_DEVICE_IMPL_DEPRECATED(9322_dip) + NETLIB_DEVICE_IMPL(9322, "TTL_9322", "+SELECT,+A1,+B1,+A2,+B2,+A3,+B3,+A4,+B4,+STROBE") + NETLIB_DEVICE_IMPL(9322_dip, "TTL_9322_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_am2847.cpp b/src/lib/netlist/devices/nld_am2847.cpp index 6c045cca4ea..af7cf1ff2f7 100644 --- a/src/lib/netlist/devices/nld_am2847.cpp +++ b/src/lib/netlist/devices/nld_am2847.cpp @@ -130,8 +130,8 @@ namespace netlist m_OUT.push(out, NLTIME_FROM_NS(200)); } - NETLIB_DEVICE_IMPL_DEPRECATED(AM2847) - NETLIB_DEVICE_IMPL_DEPRECATED(AM2847_dip) + NETLIB_DEVICE_IMPL(AM2847, "TTL_AM2847", "+CP,+INA,+INB,+INC,+IND,+RCA,+RCB,+RCC,+RCD") + NETLIB_DEVICE_IMPL(AM2847_dip, "TTL_AM2847_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_dm9314.cpp b/src/lib/netlist/devices/nld_dm9314.cpp index 0ccff10d85a..b98eb57625e 100644 --- a/src/lib/netlist/devices/nld_dm9314.cpp +++ b/src/lib/netlist/devices/nld_dm9314.cpp @@ -107,8 +107,8 @@ namespace netlist } } - NETLIB_DEVICE_IMPL_DEPRECATED(9314) - NETLIB_DEVICE_IMPL_DEPRECATED(9314_dip) + NETLIB_DEVICE_IMPL(9314, "TTL_9314", "+EQ,+MRQ,+S0Q,+S1Q,+S2Q,+S3Q,+D0,+D1,+D2,+D3") + NETLIB_DEVICE_IMPL(9314_dip, "TTL_9314_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_dm9334.cpp b/src/lib/netlist/devices/nld_dm9334.cpp index d404c530449..c79803a7ecb 100644 --- a/src/lib/netlist/devices/nld_dm9334.cpp +++ b/src/lib/netlist/devices/nld_dm9334.cpp @@ -143,8 +143,8 @@ namespace netlist m_Q[i].push((q >> i) & 1, delay); } - NETLIB_DEVICE_IMPL_DEPRECATED(9334) - NETLIB_DEVICE_IMPL_DEPRECATED(9334_dip) + NETLIB_DEVICE_IMPL(9334, "TTL_9334", "+CQ,+EQ,+D,+A0,+A1,+A2") + NETLIB_DEVICE_IMPL(9334_dip, "TTL_9334_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_legacy.cpp b/src/lib/netlist/devices/nld_legacy.cpp index cc77d6b7063..df0bbc111cb 100644 --- a/src/lib/netlist/devices/nld_legacy.cpp +++ b/src/lib/netlist/devices/nld_legacy.cpp @@ -100,8 +100,8 @@ namespace netlist m_last = nval; } - NETLIB_DEVICE_IMPL_DEPRECATED(nicRSFF) - NETLIB_DEVICE_IMPL_DEPRECATED(nicDelay) + NETLIB_DEVICE_IMPL(nicRSFF, "NETDEV_RSFF", "") + NETLIB_DEVICE_IMPL(nicDelay, "NETDEV_DELAY", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_log.cpp b/src/lib/netlist/devices/nld_log.cpp index 03f7cae779c..107cd3863c0 100644 --- a/src/lib/netlist/devices/nld_log.cpp +++ b/src/lib/netlist/devices/nld_log.cpp @@ -89,8 +89,8 @@ namespace netlist #endif - NETLIB_DEVICE_IMPL_DEPRECATED(log) - NETLIB_DEVICE_IMPL_DEPRECATED(logD) + NETLIB_DEVICE_IMPL(log, "LOG", "+I") + NETLIB_DEVICE_IMPL(logD, "LOGD", "+I,+I2") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_mm5837.cpp b/src/lib/netlist/devices/nld_mm5837.cpp index 223c37c35af..713c7288df1 100644 --- a/src/lib/netlist/devices/nld_mm5837.cpp +++ b/src/lib/netlist/devices/nld_mm5837.cpp @@ -114,7 +114,7 @@ namespace netlist } - NETLIB_DEVICE_IMPL_DEPRECATED(MM5837_dip) + NETLIB_DEVICE_IMPL(MM5837_dip, "MM5837_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_ne555.cpp b/src/lib/netlist/devices/nld_ne555.cpp index e357afa6947..513aeefc66f 100644 --- a/src/lib/netlist/devices/nld_ne555.cpp +++ b/src/lib/netlist/devices/nld_ne555.cpp @@ -177,8 +177,8 @@ namespace netlist m_last_out = out; } - NETLIB_DEVICE_IMPL_DEPRECATED(NE555) - NETLIB_DEVICE_IMPL_DEPRECATED(NE555_dip) + NETLIB_DEVICE_IMPL(NE555, "NE555", "") + NETLIB_DEVICE_IMPL(NE555_dip, "NE555_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_r2r_dac.cpp b/src/lib/netlist/devices/nld_r2r_dac.cpp index 3a0ec2aea80..a622ebe52ab 100644 --- a/src/lib/netlist/devices/nld_r2r_dac.cpp +++ b/src/lib/netlist/devices/nld_r2r_dac.cpp @@ -49,7 +49,7 @@ namespace netlist } //namespace analog namespace devices { - NETLIB_DEVICE_IMPL_NS(analog, r2r_dac) + NETLIB_DEVICE_IMPL_NS(analog, r2r_dac, "R2R_DAC", "VIN,R,N") } } // namespace netlist diff --git a/src/lib/netlist/devices/nld_schmitt.cpp b/src/lib/netlist/devices/nld_schmitt.cpp index 394513d63a4..6f526ca7f42 100644 --- a/src/lib/netlist/devices/nld_schmitt.cpp +++ b/src/lib/netlist/devices/nld_schmitt.cpp @@ -125,7 +125,7 @@ namespace netlist bool m_is_timestep; }; - NETLIB_DEVICE_IMPL_DEPRECATED(schmitt_trigger) + NETLIB_DEVICE_IMPL(schmitt_trigger, "SCHMITT_TRIGGER", "MODEL") } // namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_system.cpp b/src/lib/netlist/devices/nld_system.cpp index bfc6f71e38f..24af4527a70 100644 --- a/src/lib/netlist/devices/nld_system.cpp +++ b/src/lib/netlist/devices/nld_system.cpp @@ -104,17 +104,19 @@ namespace netlist } - NETLIB_DEVICE_IMPL_DEPRECATED(dummy_input) - NETLIB_DEVICE_IMPL_DEPRECATED(frontier) - NETLIB_DEVICE_IMPL_DEPRECATED(function) - NETLIB_DEVICE_IMPL_DEPRECATED(logic_input) - NETLIB_DEVICE_IMPL_DEPRECATED(analog_input) - NETLIB_DEVICE_IMPL_DEPRECATED(clock) - NETLIB_DEVICE_IMPL_DEPRECATED(extclock) - NETLIB_DEVICE_IMPL_DEPRECATED(res_sw) - NETLIB_DEVICE_IMPL_DEPRECATED(mainclock) - NETLIB_DEVICE_IMPL_DEPRECATED(gnd) - NETLIB_DEVICE_IMPL_DEPRECATED(netlistparams) + NETLIB_DEVICE_IMPL(dummy_input, "DUMMY_INPUT", "") + NETLIB_DEVICE_IMPL(frontier, "FRONTIER_DEV", "+I,+G,+Q") + NETLIB_DEVICE_IMPL(function, "AFUNC", "N,FUNC") + NETLIB_DEVICE_IMPL(analog_input, "ANALOG_INPUT", "IN") + NETLIB_DEVICE_IMPL(clock, "CLOCK", "FREQ") + NETLIB_DEVICE_IMPL(extclock, "EXTCLOCK", "FREQ,PATTERN") + NETLIB_DEVICE_IMPL(res_sw, "RES_SWITCH", "+IN,+P1,+P2") + NETLIB_DEVICE_IMPL(mainclock, "MAINCLOCK", "FREQ") + NETLIB_DEVICE_IMPL(gnd, "GND", "") + NETLIB_DEVICE_IMPL(netlistparams, "PARAMETER", "") + + NETLIB_DEVICE_IMPL(logic_input, "LOGIC_INPUT", "IN,FAMILY") + NETLIB_DEVICE_IMPL_ALIAS(logic_input_ttl, logic_input, "TTL_INPUT", "IN") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_tms4800.cpp b/src/lib/netlist/devices/nld_tms4800.cpp index 6184cf487c5..d9c832b7d62 100644 --- a/src/lib/netlist/devices/nld_tms4800.cpp +++ b/src/lib/netlist/devices/nld_tms4800.cpp @@ -97,8 +97,8 @@ namespace netlist } } - NETLIB_DEVICE_IMPL_DEPRECATED(TMS4800) - NETLIB_DEVICE_IMPL_DEPRECATED(TMS4800_dip) + NETLIB_DEVICE_IMPL(TMS4800, "ROM_TMS4800", "+AR,+OE1,+OE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10") + NETLIB_DEVICE_IMPL(TMS4800_dip, "ROM_TMS4800_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_tristate.cpp b/src/lib/netlist/devices/nld_tristate.cpp index 1e7ad397d60..781ba014b4b 100644 --- a/src/lib/netlist/devices/nld_tristate.cpp +++ b/src/lib/netlist/devices/nld_tristate.cpp @@ -70,8 +70,8 @@ namespace netlist m_Q.push(q, NLTIME_FROM_NS(1)); } - NETLIB_DEVICE_IMPL_DEPRECATED(tristate) - NETLIB_DEVICE_IMPL_DEPRECATED(tristate3) + NETLIB_DEVICE_IMPL(tristate, "TTL_TRISTATE", "+CEQ1,+D1,+CEQ2,+D2") + NETLIB_DEVICE_IMPL(tristate3, "TTL_TRISTATE3", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/nl_factory.cpp b/src/lib/netlist/nl_factory.cpp index 998f1a5870b..eca8de4d4b2 100644 --- a/src/lib/netlist/nl_factory.cpp +++ b/src/lib/netlist/nl_factory.cpp @@ -17,95 +17,85 @@ namespace netlist { namespace factory { -class NETLIB_NAME(wrapper) : public device_t -{ -public: - NETLIB_NAME(wrapper)(netlist_base_t &anetlist, const pstring &name) - : device_t(anetlist, name) + class NETLIB_NAME(wrapper) : public device_t + { + public: + NETLIB_NAME(wrapper)(netlist_base_t &anetlist, const pstring &name) + : device_t(anetlist, name) + { + } + protected: + NETLIB_RESETI() { } + NETLIB_UPDATEI() { }; + }; + + element_t::element_t(const pstring &name, const pstring &classname, + const pstring &def_param, const pstring &sourcefile) + : m_name(name), m_classname(classname), m_def_param(def_param), + m_sourcefile(sourcefile) { } -protected: - NETLIB_RESETI(); - NETLIB_UPDATEI(); -}; - + element_t::element_t(const pstring &name, const pstring &classname, + const pstring &def_param) + : m_name(name), m_classname(classname), m_def_param(def_param), + m_sourcefile("") + { + } -element_t::element_t(const pstring &name, const pstring &classname, - const pstring &def_param, const pstring &sourcefile) - : m_name(name), m_classname(classname), m_def_param(def_param), - m_sourcefile(sourcefile) -{ -} - -element_t::element_t(const pstring &name, const pstring &classname, - const pstring &def_param) - : m_name(name), m_classname(classname), m_def_param(def_param), - m_sourcefile("") -{ -} - -element_t::~element_t() -{ -} - -// ---------------------------------------------------------------------------------------- -// net_device_t_base_factory -// ---------------------------------------------------------------------------------------- - -list_t::list_t( setup_t &setup) -: m_setup(setup) -{ -} + element_t::~element_t() + { + } -list_t::~list_t() -{ - clear(); -} + // ---------------------------------------------------------------------------------------- + // net_device_t_base_factory + // ---------------------------------------------------------------------------------------- -void list_t::register_device(std::unique_ptr &&factory) -{ - for (auto & e : *this) - if (e->name() == factory->name()) - m_setup.log().fatal(MF_1_FACTORY_ALREADY_CONTAINS_1, factory->name()); - push_back(std::move(factory)); -} - -factory::element_t * list_t::factory_by_name(const pstring &devname) -{ - for (auto & e : *this) + list_t::list_t( setup_t &setup) + : m_setup(setup) { - if (e->name() == devname) - return e.get(); } - m_setup.log().fatal(MF_1_CLASS_1_NOT_FOUND, devname); - return nullptr; // appease code analysis -} + list_t::~list_t() + { + clear(); + } -// ----------------------------------------------------------------------------- -// factory_lib_entry_t: factory class to wrap macro based chips/elements -// ----------------------------------------------------------------------------- + void list_t::register_device(std::unique_ptr &&factory) + { + for (auto & e : *this) + if (e->name() == factory->name()) + m_setup.log().fatal(MF_1_FACTORY_ALREADY_CONTAINS_1, factory->name()); + push_back(std::move(factory)); + } -plib::owned_ptr library_element_t::Create(netlist_base_t &anetlist, const pstring &name) -{ - return plib::owned_ptr::Create(anetlist, name); -} + factory::element_t * list_t::factory_by_name(const pstring &devname) + { + for (auto & e : *this) + { + if (e->name() == devname) + return e.get(); + } + + m_setup.log().fatal(MF_1_CLASS_1_NOT_FOUND, devname); + return nullptr; // appease code analysis + } -void library_element_t::macro_actions(netlist_base_t &anetlist, const pstring &name) -{ - anetlist.setup().namespace_push(name); - anetlist.setup().include(this->name()); - anetlist.setup().namespace_pop(); -} + // ----------------------------------------------------------------------------- + // factory_lib_entry_t: factory class to wrap macro based chips/elements + // ----------------------------------------------------------------------------- -NETLIB_RESET(wrapper) -{ -} + plib::owned_ptr library_element_t::Create(netlist_base_t &anetlist, const pstring &name) + { + return plib::owned_ptr::Create(anetlist, name); + } -NETLIB_UPDATE(wrapper) -{ -} + void library_element_t::macro_actions(netlist_base_t &anetlist, const pstring &name) + { + anetlist.setup().namespace_push(name); + anetlist.setup().include(this->name()); + anetlist.setup().namespace_pop(); + } } } diff --git a/src/lib/netlist/nl_factory.h b/src/lib/netlist/nl_factory.h index 4dc0409da00..a20ba400234 100644 --- a/src/lib/netlist/nl_factory.h +++ b/src/lib/netlist/nl_factory.h @@ -9,35 +9,28 @@ #ifndef NLFACTORY_H_ #define NLFACTORY_H_ +#include + #include "plib/palloc.h" #include "plib/ptypes.h" -// deprecated! -#define NETLIB_DEVICE_IMPL_DEPRECATED(chip) \ - static std::unique_ptr NETLIB_NAME(chip ## _c)( \ - const pstring &name, const pstring &classname, const pstring &def_param) \ - { \ - return std::unique_ptr(plib::palloc>(name, classname, def_param, pstring(__FILE__))); \ - } \ - factory::constructor_ptr_t decl_ ## chip = NETLIB_NAME(chip ## _c); +#define NETLIB_DEVICE_IMPL_ALIAS(p_alias, chip, p_name, p_def_param) \ + NETLIB_DEVICE_IMPL_BASE(devices, p_alias, chip, p_name, p_def_param) \ -// the new way ... #define NETLIB_DEVICE_IMPL(chip, p_name, p_def_param) \ - static std::unique_ptr NETLIB_NAME(chip ## _c)( \ - const pstring &name, const pstring &classname, const pstring &def_param) \ - { \ - return std::unique_ptr(plib::palloc>(p_name, classname, p_def_param, pstring(__FILE__))); \ - } \ - factory::constructor_ptr_t decl_ ## chip = NETLIB_NAME(chip ## _c); + NETLIB_DEVICE_IMPL_NS(devices, chip, p_name, p_def_param) + +#define NETLIB_DEVICE_IMPL_NS(ns, chip, p_name, p_def_param) \ + NETLIB_DEVICE_IMPL_BASE(ns, chip, chip, p_name, p_def_param) \ -#define NETLIB_DEVICE_IMPL_NS(ns, chip) \ - static std::unique_ptr NETLIB_NAME(chip ## _c)( \ - const pstring &name, const pstring &classname, const pstring &def_param) \ +#define NETLIB_DEVICE_IMPL_BASE(ns, p_alias, chip, p_name, p_def_param) \ + static std::unique_ptr NETLIB_NAME(p_alias ## _c) \ + (const pstring &classname) \ { \ - return std::unique_ptr(plib::palloc>(name, classname, def_param, pstring(__FILE__))); \ + return std::unique_ptr(plib::palloc>(p_name, classname, p_def_param, pstring(__FILE__))); \ } \ \ - factory::constructor_ptr_t decl_ ## chip = NETLIB_NAME(chip ## _c); + factory::constructor_ptr_t decl_ ## p_alias = NETLIB_NAME(p_alias ## _c); namespace netlist { class device_t; @@ -121,8 +114,7 @@ namespace factory { // factory_creator_ptr_t // ----------------------------------------------------------------------------- - using constructor_ptr_t = std::unique_ptr (*)(const pstring &name, const pstring &classname, - const pstring &def_param); + using constructor_ptr_t = std::unique_ptr (*)(const pstring &classname); template std::unique_ptr constructor_t(const pstring &name, const pstring &classname, diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp index 372919814d9..4350f892716 100644 --- a/src/lib/netlist/solver/nld_solver.cpp +++ b/src/lib/netlist/solver/nld_solver.cpp @@ -418,7 +418,7 @@ void NETLIB_NAME(solver)::create_solver_code(std::map &mp) } } - NETLIB_DEVICE_IMPL_DEPRECATED(solver) + NETLIB_DEVICE_IMPL(solver, "SOLVER", "FREQ") } //namespace devices } // namespace netlist -- cgit v1.2.3