Move information where it belongs ... into the drivers. (nw)

This commit is contained in:
couriersud 2019-01-10 02:07:14 +01:00
parent 4213a396d8
commit 7079d0f5fe
51 changed files with 163 additions and 146 deletions

View File

@ -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, "")

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -77,7 +77,7 @@ namespace netlist
}
}
NETLIB_DEVICE_IMPL(CD4066_GATE)
NETLIB_DEVICE_IMPL_DEPRECATED(CD4066_GATE)
} //namespace devices
} // namespace netlist

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -114,7 +114,7 @@ namespace netlist
}
NETLIB_DEVICE_IMPL(MM5837_dip)
NETLIB_DEVICE_IMPL_DEPRECATED(MM5837_dip)
} //namespace devices
} // namespace netlist

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -39,9 +39,9 @@ namespace netlist
param_rom_t<uint8_t, 11, 8> 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

View File

@ -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

View File

@ -67,7 +67,11 @@ void list_t::register_device(std::unique_ptr<element_t> &&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));
}

View File

@ -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<factory::element_t> 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<factory::element_t> NETLIB_NAME(chip ## _c)( \
const pstring &name, const pstring &classname, const pstring &def_param) \
{ \
return std::unique_ptr<factory::element_t>(plib::palloc<factory::device_element_t<NETLIB_NAME(chip)>>(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<factory::element_t> NETLIB_NAME(chip ## _c)( \
const pstring &name, const pstring &classname, const pstring &def_param) \

View File

@ -417,7 +417,7 @@ void NETLIB_NAME(solver)::create_solver_code(std::map<pstring, pstring> &mp)
}
}
NETLIB_DEVICE_IMPL(solver)
NETLIB_DEVICE_IMPL_DEPRECATED(solver)
} //namespace devices
} // namespace netlist