diff --git a/src/lib/netlist/devices/net_lib.cpp b/src/lib/netlist/devices/net_lib.cpp index dd77be5a9a2..a64f2efe8b3 100644 --- a/src/lib/netlist/devices/net_lib.cpp +++ b/src/lib/netlist/devices/net_lib.cpp @@ -15,10 +15,13 @@ #define xstr(s) # s -#define NETLIB_DEVICE_DECL(chip) extern factory::constructor_ptr_t decl_ ## chip; +#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 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) } namespace netlist { @@ -60,25 +63,41 @@ namespace netlist ENTRYX(switch2, SWITCH2, "") ENTRYX(nicRSFF, NETDEV_RSFF, "") ENTRYX(nicDelay, NETDEV_DELAY, "") - ENTRYX(2716, EPROM_2716, "+GQ,+EPQ,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10") - ENTRYX(TMS4800, ROM_TMS4800, "+AR,+OE1,+OE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10") ENTRYX(2102A, RAM_2102A, "+CEQ,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+RWQ,+DI") - ENTRYX(7450, TTL_7450_ANDORINVERT, "+A,+B,+C,+D") - ENTRYX(7448, TTL_7448, "+A,+B,+C,+D,+LTQ,+BIQ,+RBIQ") - ENTRYX(7473, TTL_7473, "+CLK,+J,+K,+CLRQ") - ENTRYX(7473A, TTL_7473A, "+CLK,+J,+K,+CLRQ") - ENTRYX(7474, TTL_7474, "+CLK,+D,+CLRQ,+PREQ") + 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(7483, TTL_7483, "+A1,+A2,+A3,+A4,+B1,+B2,+B3,+B4,+C0") - ENTRYX(7485, TTL_7485, "+A0,+A1,+A2,+A3,+B0,+B1,+B2,+B3,+LTIN,+EQIN,+GTIN") - ENTRYX(7490, TTL_7490, "+A,+B,+R1,+R2,+R91,+R92") - ENTRYX(7493, TTL_7493, "+CLKA,+CLKB,+R1,+R2") - ENTRYX(7497, TTL_7497, "+CLK,+STRBQ,+ENQ,+UNITYQ,+CLR,+B0,+B1,+B2,+B3,+B4,+B5") - ENTRYX(74107, TTL_74107, "+CLK,+J,+K,+CLRQ") - ENTRYX(74107A, TTL_74107A, "+CLK,+J,+K,+CLRQ") + 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(74153, TTL_74153, "+C0,+C1,+C2,+C3,+A,+B,+G") + ENTRYX(74123_dip, TTL_74123_DIP, "") + ENTRYX_N(74153) + ENTRYX_N(74153_dip) ENTRYX(74161, TTL_74161, "+A,+B,+C,+D,+CLRQ,+LOADQ,+CLK,+ENABLEP,+ENABLET") ENTRYX(74164, TTL_74164, "+A,+B,+CLRQ,+CLK") ENTRYX(74165, TTL_74165, "+CLK,+CLKINH,+SH_LDQ,+SER,+A,+B,+C,+D,+E,+F,+G,+H") @@ -101,36 +120,20 @@ namespace netlist 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 */ - ENTRYX(CD4020, CD4020_WI, "+IP,+RESET,+VDD,+VSS") //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(2102A_dip, RAM_2102A_DIP, "") - ENTRYX(2716_dip, EPROM_2716_DIP, "") - ENTRYX(tms4800_dip, ROM_TMS4800_DIP, "") - ENTRYX(4538_dip, CD4538_DIP, "") - ENTRYX(7448_dip, TTL_7448_DIP, "") - ENTRYX(7450_dip, TTL_7450_DIP, "") - ENTRYX(7473_dip, TTL_7473_DIP, "") - ENTRYX(7473A_dip, TTL_7473A_DIP, "") - ENTRYX(7474_dip, TTL_7474_DIP, "") - ENTRYX(7475_dip, TTL_7475_DIP, "") - ENTRYX(7477_dip, TTL_7477_DIP, "") - ENTRYX(7483_dip, TTL_7483_DIP, "") - ENTRYX(7485_dip, TTL_7485_DIP, "") - ENTRYX(7490_dip, TTL_7490_DIP, "") - ENTRYX(7493_dip, TTL_7493_DIP, "") - ENTRYX(7497_dip, TTL_7497_DIP, "") - ENTRYX(74107_dip, TTL_74107_DIP, "") - ENTRYX(74123_dip, TTL_74123_DIP, "") - ENTRYX(74153_dip, TTL_74153_DIP, "") ENTRYX(74161_dip, TTL_74161_DIP, "") ENTRYX(74164_dip, TTL_74164_DIP, "") ENTRYX(74165_dip, TTL_74165_DIP, "") diff --git a/src/lib/netlist/devices/nld_2102A.cpp b/src/lib/netlist/devices/nld_2102A.cpp index 5296bf2d029..3a84dcc7aec 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(2102A) - NETLIB_DEVICE_IMPL(2102A_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(2102A) + NETLIB_DEVICE_IMPL_DEPRECATED(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 cb53d60e205..4f1438ddb76 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(2716) - NETLIB_DEVICE_IMPL(2716_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(2716) + NETLIB_DEVICE_IMPL_DEPRECATED(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 8403d42bef2..7377c27fd0e 100644 --- a/src/lib/netlist/devices/nld_4020.cpp +++ b/src/lib/netlist/devices/nld_4020.cpp @@ -113,7 +113,7 @@ namespace netlist m_Q[i].push((cnt >> i) & 1, out_delayQn[i]); } - NETLIB_DEVICE_IMPL(CD4020) + NETLIB_DEVICE_IMPL_DEPRECATED(CD4020) } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_4066.cpp b/src/lib/netlist/devices/nld_4066.cpp index ebd269a023a..b5f3b2f6bf2 100644 --- a/src/lib/netlist/devices/nld_4066.cpp +++ b/src/lib/netlist/devices/nld_4066.cpp @@ -77,7 +77,7 @@ namespace netlist } } - NETLIB_DEVICE_IMPL(CD4066_GATE) + NETLIB_DEVICE_IMPL_DEPRECATED(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 b9758ff036b..0bce54cc6c3 100644 --- a/src/lib/netlist/devices/nld_4316.cpp +++ b/src/lib/netlist/devices/nld_4316.cpp @@ -50,6 +50,6 @@ namespace netlist { namespace devices { m_R.m_P.schedule_solve_after(NLTIME_FROM_NS(1)); } - NETLIB_DEVICE_IMPL(CD4316_GATE) + NETLIB_DEVICE_IMPL_DEPRECATED(CD4316_GATE) } } // namesapce netlist::devices diff --git a/src/lib/netlist/devices/nld_74107.cpp b/src/lib/netlist/devices/nld_74107.cpp index c5a12a15fb4..6a45f6ca4e8 100644 --- a/src/lib/netlist/devices/nld_74107.cpp +++ b/src/lib/netlist/devices/nld_74107.cpp @@ -137,9 +137,9 @@ namespace netlist m_clk.activate_hl(); } - NETLIB_DEVICE_IMPL(74107) - NETLIB_DEVICE_IMPL(74107A) - NETLIB_DEVICE_IMPL(74107_dip) + NETLIB_DEVICE_IMPL(74107, "TTL_74107", "+CLK,+J,+K,+CLRQ") + NETLIB_DEVICE_IMPL(74107A, "TTL_74107A", "+CLK,+J,+K,+CLRQ") + NETLIB_DEVICE_IMPL(74107_dip, "TTL_74107_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74123.cpp b/src/lib/netlist/devices/nld_74123.cpp index 9055c5ce140..ebc8eeebc83 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.do_reset(); } - NETLIB_DEVICE_IMPL(74123) - NETLIB_DEVICE_IMPL(74123_dip) - NETLIB_DEVICE_IMPL(4538_dip) - NETLIB_DEVICE_IMPL(9602_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(74123) + NETLIB_DEVICE_IMPL_DEPRECATED(74123_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(4538_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(9602_dip) } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74153.cpp b/src/lib/netlist/devices/nld_74153.cpp index b74c09f8cc0..ee52ceb0721 100644 --- a/src/lib/netlist/devices/nld_74153.cpp +++ b/src/lib/netlist/devices/nld_74153.cpp @@ -131,8 +131,8 @@ namespace netlist m_2.update_dev(); } - NETLIB_DEVICE_IMPL(74153) - NETLIB_DEVICE_IMPL(74153_dip) + NETLIB_DEVICE_IMPL(74153, "TTL_74153", "+C0,+C1,+C2,+C3,+A,+B,+G") + NETLIB_DEVICE_IMPL(74153_dip, "TTL_74153_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74161.cpp b/src/lib/netlist/devices/nld_74161.cpp index 5eb711fb456..168bec720e1 100644 --- a/src/lib/netlist/devices/nld_74161.cpp +++ b/src/lib/netlist/devices/nld_74161.cpp @@ -126,8 +126,8 @@ namespace netlist m_RCO.push(tRippleCarryOut, NLTIME_FROM_NS(20)); //FIXME } - NETLIB_DEVICE_IMPL(74161) - NETLIB_DEVICE_IMPL(74161_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(74161) + NETLIB_DEVICE_IMPL_DEPRECATED(74161_dip) } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74164.cpp b/src/lib/netlist/devices/nld_74164.cpp index 5b2b1d8d080..cac5fe87022 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(74164) - NETLIB_DEVICE_IMPL(74164_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(74164) + NETLIB_DEVICE_IMPL_DEPRECATED(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 678c1b1782e..7db9f963a90 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(74165) - NETLIB_DEVICE_IMPL(74165_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(74165) + NETLIB_DEVICE_IMPL_DEPRECATED(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 32f075c4da5..02a69dce36c 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(74166) - NETLIB_DEVICE_IMPL(74166_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(74166) + NETLIB_DEVICE_IMPL_DEPRECATED(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 5f4573942bd..53ee8053048 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(74174) - NETLIB_DEVICE_IMPL(74174_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(74174) + NETLIB_DEVICE_IMPL_DEPRECATED(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 5955bcb389e..f92c70db572 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(74175) - NETLIB_DEVICE_IMPL(74175_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(74175) + NETLIB_DEVICE_IMPL_DEPRECATED(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 1af605d4776..660a231253f 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(74192) - NETLIB_DEVICE_IMPL(74192_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(74192) + NETLIB_DEVICE_IMPL_DEPRECATED(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 55d18f3dc1b..66431b749ca 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(74193) - NETLIB_DEVICE_IMPL(74193_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(74193) + NETLIB_DEVICE_IMPL_DEPRECATED(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 d531e792885..6dcbe1790bf 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(74194) - NETLIB_DEVICE_IMPL(74194_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(74194) + NETLIB_DEVICE_IMPL_DEPRECATED(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 10456ebbc21..d326a005f6f 100644 --- a/src/lib/netlist/devices/nld_74365.cpp +++ b/src/lib/netlist/devices/nld_74365.cpp @@ -68,8 +68,8 @@ namespace netlist } } - NETLIB_DEVICE_IMPL(74365) - NETLIB_DEVICE_IMPL(74365_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(74365) + NETLIB_DEVICE_IMPL_DEPRECATED(74365_dip) } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_7448.cpp b/src/lib/netlist/devices/nld_7448.cpp index cc2e60f23b7..8749333e320 100644 --- a/src/lib/netlist/devices/nld_7448.cpp +++ b/src/lib/netlist/devices/nld_7448.cpp @@ -211,8 +211,8 @@ namespace netlist #endif - NETLIB_DEVICE_IMPL(7448) - NETLIB_DEVICE_IMPL(7448_dip) + NETLIB_DEVICE_IMPL(7448, "TTL_7448", "+A,+B,+C,+D,+LTQ,+BIQ,+RBIQ") + NETLIB_DEVICE_IMPL(7448_dip, "TTL_7448_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nld_7450.cpp b/src/lib/netlist/devices/nld_7450.cpp index af9b9afada1..9663040260b 100644 --- a/src/lib/netlist/devices/nld_7450.cpp +++ b/src/lib/netlist/devices/nld_7450.cpp @@ -95,8 +95,8 @@ namespace netlist m_Q.push(res, times[1 - res]);// ? 22000 : 15000); } - NETLIB_DEVICE_IMPL(7450) - NETLIB_DEVICE_IMPL(7450_dip) + NETLIB_DEVICE_IMPL(7450, "TTL_7450_ANDORINVERT", "+A,+B,+C,+D") + NETLIB_DEVICE_IMPL(7450_dip, "TTL_7450_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_7473.cpp b/src/lib/netlist/devices/nld_7473.cpp index d9efb9fb710..63680d3e0d1 100644 --- a/src/lib/netlist/devices/nld_7473.cpp +++ b/src/lib/netlist/devices/nld_7473.cpp @@ -142,10 +142,10 @@ namespace netlist m_QQ.push(m_q ^ 1, NLTIME_FROM_NS(20)); // FIXME: timing } - NETLIB_DEVICE_IMPL(7473) - NETLIB_DEVICE_IMPL(7473A) - NETLIB_DEVICE_IMPL(7473_dip) - NETLIB_DEVICE_IMPL(7473A_dip) + NETLIB_DEVICE_IMPL(7473, "TTL_7473", "+CLK,+J,+K,+CLRQ") + NETLIB_DEVICE_IMPL(7473A, "TTL_7473A", "+CLK,+J,+K,+CLRQ") + NETLIB_DEVICE_IMPL(7473_dip, "TTL_7473_DIP", "") + NETLIB_DEVICE_IMPL(7473A_dip, "TTL_7473A_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_7474.cpp b/src/lib/netlist/devices/nld_7474.cpp index 37646925ae4..20fea2f5618 100644 --- a/src/lib/netlist/devices/nld_7474.cpp +++ b/src/lib/netlist/devices/nld_7474.cpp @@ -123,8 +123,8 @@ namespace netlist { } - NETLIB_DEVICE_IMPL(7474) - NETLIB_DEVICE_IMPL(7474_dip) + NETLIB_DEVICE_IMPL(7474, "TTL_7474", "+CLK,+D,+CLRQ,+PREQ") + NETLIB_DEVICE_IMPL(7474_dip, "TTL_7474_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_7475.cpp b/src/lib/netlist/devices/nld_7475.cpp index b2d28048513..544cd84e73c 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(7475) - NETLIB_DEVICE_IMPL(7475_dip) - NETLIB_DEVICE_IMPL(7477) - NETLIB_DEVICE_IMPL(7477_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(7475) + NETLIB_DEVICE_IMPL_DEPRECATED(7475_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(7477) + NETLIB_DEVICE_IMPL_DEPRECATED(7477_dip) } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_7483.cpp b/src/lib/netlist/devices/nld_7483.cpp index 272365545af..9dff8a9e1f7 100644 --- a/src/lib/netlist/devices/nld_7483.cpp +++ b/src/lib/netlist/devices/nld_7483.cpp @@ -105,8 +105,8 @@ namespace netlist } } - NETLIB_DEVICE_IMPL(7483) - NETLIB_DEVICE_IMPL(7483_dip) + NETLIB_DEVICE_IMPL(7483, "TTL_7483", "+A1,+A2,+A3,+A4,+B1,+B2,+B3,+B4,+C0") + NETLIB_DEVICE_IMPL(7483_dip, "TTL_7483_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_7485.cpp b/src/lib/netlist/devices/nld_7485.cpp index 320cf762f26..0326833db19 100644 --- a/src/lib/netlist/devices/nld_7485.cpp +++ b/src/lib/netlist/devices/nld_7485.cpp @@ -101,8 +101,8 @@ namespace netlist update_outputs(1, 1, 0); } - NETLIB_DEVICE_IMPL(7485) - NETLIB_DEVICE_IMPL(7485_dip) + NETLIB_DEVICE_IMPL(7485, "TTL_7485", "+A0,+A1,+A2,+A3,+B0,+B1,+B2,+B3,+LTIN,+EQIN,+GTIN") + NETLIB_DEVICE_IMPL(7485_dip, "TTL_7485_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_7490.cpp b/src/lib/netlist/devices/nld_7490.cpp index 13e69c6aa31..efec051f440 100644 --- a/src/lib/netlist/devices/nld_7490.cpp +++ b/src/lib/netlist/devices/nld_7490.cpp @@ -125,8 +125,8 @@ namespace netlist m_Q[i].push((m_cnt >> i) & 1, delay[i]); } - NETLIB_DEVICE_IMPL(7490) - NETLIB_DEVICE_IMPL(7490_dip) + NETLIB_DEVICE_IMPL(7490, "TTL_7490", "+A,+B,+R1,+R2,+R91,+R92") + NETLIB_DEVICE_IMPL(7490_dip, "TTL_7490_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_7493.cpp b/src/lib/netlist/devices/nld_7493.cpp index a7a20635729..e97d06d12fb 100644 --- a/src/lib/netlist/devices/nld_7493.cpp +++ b/src/lib/netlist/devices/nld_7493.cpp @@ -126,8 +126,8 @@ namespace netlist } } - NETLIB_DEVICE_IMPL(7493) - NETLIB_DEVICE_IMPL(7493_dip) + NETLIB_DEVICE_IMPL(7493, "TTL_7493", "+CLKA,+CLKB,+R1,+R2") + NETLIB_DEVICE_IMPL(7493_dip, "TTL_7493_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_7497.cpp b/src/lib/netlist/devices/nld_7497.cpp index 074a59d02f2..12e77239d61 100644 --- a/src/lib/netlist/devices/nld_7497.cpp +++ b/src/lib/netlist/devices/nld_7497.cpp @@ -167,8 +167,8 @@ namespace netlist }; - NETLIB_DEVICE_IMPL(7497) - NETLIB_DEVICE_IMPL(7497_dip) + NETLIB_DEVICE_IMPL(7497, "TTL_7497", "+CLK,+STRBQ,+ENQ,+UNITYQ,+CLR,+B0,+B1,+B2,+B3,+B4,+B5") + NETLIB_DEVICE_IMPL(7497_dip, "TTL_7497_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_74ls629.cpp b/src/lib/netlist/devices/nld_74ls629.cpp index d6dc268ed28..e25a1d21d88 100644 --- a/src/lib/netlist/devices/nld_74ls629.cpp +++ b/src/lib/netlist/devices/nld_74ls629.cpp @@ -231,8 +231,8 @@ namespace netlist } } - NETLIB_DEVICE_IMPL(SN74LS629) - NETLIB_DEVICE_IMPL(SN74LS629_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(SN74LS629) + NETLIB_DEVICE_IMPL_DEPRECATED(SN74LS629_dip) } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_82S115.cpp b/src/lib/netlist/devices/nld_82S115.cpp index 2e24bbf9fed..b2eed7cbd10 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(82S115) - NETLIB_DEVICE_IMPL(82S115_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(82S115) + NETLIB_DEVICE_IMPL_DEPRECATED(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 a8a6bfc9b57..a4c57ed2d46 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(82S123) - NETLIB_DEVICE_IMPL(82S123_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(82S123) + NETLIB_DEVICE_IMPL_DEPRECATED(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 dcacd1ec876..7762312c229 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(82S126) - NETLIB_DEVICE_IMPL(82S126_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(82S126) + NETLIB_DEVICE_IMPL_DEPRECATED(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 7441f6c677e..271645917bd 100644 --- a/src/lib/netlist/devices/nld_82S16.cpp +++ b/src/lib/netlist/devices/nld_82S16.cpp @@ -103,8 +103,8 @@ namespace netlist } } - NETLIB_DEVICE_IMPL(82S16) - NETLIB_DEVICE_IMPL(82S16_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(82S16) + NETLIB_DEVICE_IMPL_DEPRECATED(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 ad752adb605..27cbdc82dc2 100644 --- a/src/lib/netlist/devices/nld_9310.cpp +++ b/src/lib/netlist/devices/nld_9310.cpp @@ -262,8 +262,8 @@ namespace netlist #endif } - NETLIB_DEVICE_IMPL(9310) - NETLIB_DEVICE_IMPL(9310_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(9310) + NETLIB_DEVICE_IMPL_DEPRECATED(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 ba3b4a58167..efae5a77f8c 100644 --- a/src/lib/netlist/devices/nld_9316.cpp +++ b/src/lib/netlist/devices/nld_9316.cpp @@ -168,8 +168,8 @@ namespace netlist } - NETLIB_DEVICE_IMPL(9316) - NETLIB_DEVICE_IMPL(9316_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(9316) + NETLIB_DEVICE_IMPL_DEPRECATED(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 6c408498be7..d27386dd05f 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_dev(); } - NETLIB_DEVICE_IMPL(9322) - NETLIB_DEVICE_IMPL(9322_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(9322) + NETLIB_DEVICE_IMPL_DEPRECATED(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 5d0c5cb71a3..9aa6c0a795f 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(AM2847) - NETLIB_DEVICE_IMPL(AM2847_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(AM2847) + NETLIB_DEVICE_IMPL_DEPRECATED(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 fd3b8666078..0ccff10d85a 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(9314) - NETLIB_DEVICE_IMPL(9314_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(9314) + NETLIB_DEVICE_IMPL_DEPRECATED(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 8dceded5390..d404c530449 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(9334) - NETLIB_DEVICE_IMPL(9334_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(9334) + NETLIB_DEVICE_IMPL_DEPRECATED(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 28fe0ad8188..cc77d6b7063 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(nicRSFF) - NETLIB_DEVICE_IMPL(nicDelay) + NETLIB_DEVICE_IMPL_DEPRECATED(nicRSFF) + NETLIB_DEVICE_IMPL_DEPRECATED(nicDelay) } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_log.cpp b/src/lib/netlist/devices/nld_log.cpp index 29218aaa09a..8125dacafe8 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(log) - NETLIB_DEVICE_IMPL(logD) + NETLIB_DEVICE_IMPL_DEPRECATED(log) + NETLIB_DEVICE_IMPL_DEPRECATED(logD) } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_mm5837.cpp b/src/lib/netlist/devices/nld_mm5837.cpp index e97ae41e437..9bc678598d4 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(MM5837_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(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 8795197bd57..d41b9f108c7 100644 --- a/src/lib/netlist/devices/nld_ne555.cpp +++ b/src/lib/netlist/devices/nld_ne555.cpp @@ -180,8 +180,8 @@ namespace netlist m_last_out = out; } - NETLIB_DEVICE_IMPL(NE555) - NETLIB_DEVICE_IMPL(NE555_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(NE555) + NETLIB_DEVICE_IMPL_DEPRECATED(NE555_dip) } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_schmitt.cpp b/src/lib/netlist/devices/nld_schmitt.cpp index 4bc41075f89..43ba4573681 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(schmitt_trigger) + NETLIB_DEVICE_IMPL_DEPRECATED(schmitt_trigger) } // namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_system.cpp b/src/lib/netlist/devices/nld_system.cpp index eabc4b4fbff..fa3726340a0 100644 --- a/src/lib/netlist/devices/nld_system.cpp +++ b/src/lib/netlist/devices/nld_system.cpp @@ -141,17 +141,17 @@ namespace netlist } - NETLIB_DEVICE_IMPL(dummy_input) - NETLIB_DEVICE_IMPL(frontier) - NETLIB_DEVICE_IMPL(function) - NETLIB_DEVICE_IMPL(logic_input) - NETLIB_DEVICE_IMPL(analog_input) - NETLIB_DEVICE_IMPL(clock) - NETLIB_DEVICE_IMPL(extclock) - NETLIB_DEVICE_IMPL(res_sw) - NETLIB_DEVICE_IMPL(mainclock) - NETLIB_DEVICE_IMPL(gnd) - NETLIB_DEVICE_IMPL(netlistparams) + 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) } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_tms4800.cpp b/src/lib/netlist/devices/nld_tms4800.cpp index 29a9bd836ab..6184cf487c5 100644 --- a/src/lib/netlist/devices/nld_tms4800.cpp +++ b/src/lib/netlist/devices/nld_tms4800.cpp @@ -39,9 +39,9 @@ namespace netlist param_rom_t m_ROM; // 16 Kbits, used as 2 Kbit x 8 }; - NETLIB_OBJECT_DERIVED(tms4800_dip, TMS4800) + NETLIB_OBJECT_DERIVED(TMS4800_dip, TMS4800) { - NETLIB_CONSTRUCTOR_DERIVED(tms4800_dip, TMS4800) + NETLIB_CONSTRUCTOR_DERIVED(TMS4800_dip, TMS4800) { register_subalias("2", m_A[0]); register_subalias("3", m_A[1]); @@ -97,8 +97,8 @@ namespace netlist } } - NETLIB_DEVICE_IMPL(TMS4800) - NETLIB_DEVICE_IMPL(tms4800_dip) + NETLIB_DEVICE_IMPL_DEPRECATED(TMS4800) + NETLIB_DEVICE_IMPL_DEPRECATED(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 74fbb206feb..1e7ad397d60 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(tristate) - NETLIB_DEVICE_IMPL(tristate3) + NETLIB_DEVICE_IMPL_DEPRECATED(tristate) + NETLIB_DEVICE_IMPL_DEPRECATED(tristate3) } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/nl_factory.cpp b/src/lib/netlist/nl_factory.cpp index 2bb49590c4b..bfefe5dd5e0 100644 --- a/src/lib/netlist/nl_factory.cpp +++ b/src/lib/netlist/nl_factory.cpp @@ -67,7 +67,11 @@ void list_t::register_device(std::unique_ptr &&factory) { for (auto & e : *this) if (e->name() == factory->name()) + { + // FIXME: throws pure virtual exception + printf("%s\n", e->name().c_str()); m_setup.log().fatal(MF_1_FACTORY_ALREADY_CONTAINS_1, factory->name()); + } push_back(std::move(factory)); } diff --git a/src/lib/netlist/nl_factory.h b/src/lib/netlist/nl_factory.h index 6dad6c5e171..ed82090915e 100644 --- a/src/lib/netlist/nl_factory.h +++ b/src/lib/netlist/nl_factory.h @@ -12,7 +12,8 @@ #include "plib/palloc.h" #include "plib/ptypes.h" -#define NETLIB_DEVICE_IMPL(chip) \ +// 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) \ { \ @@ -20,6 +21,15 @@ } \ factory::constructor_ptr_t decl_ ## chip = NETLIB_NAME(chip ## _c); +// 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); + #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) \ diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp index ad62ba17c28..d639bc6c858 100644 --- a/src/lib/netlist/solver/nld_solver.cpp +++ b/src/lib/netlist/solver/nld_solver.cpp @@ -417,7 +417,7 @@ void NETLIB_NAME(solver)::create_solver_code(std::map &mp) } } - NETLIB_DEVICE_IMPL(solver) + NETLIB_DEVICE_IMPL_DEPRECATED(solver) } //namespace devices } // namespace netlist