summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2020-08-23 10:38:23 +0200
committer couriersud <couriersud@gmx.org>2020-08-23 10:57:35 +0200
commit86f4a96c4a96970881afd633dadaefbe1e288d71 (patch)
treebff9d904e5fbb730ab15de7556bbde46eee63d7b
parente28e936a14ffcb7b6f36bea330a123cedf638827 (diff)
netlist: Macro DIP definitons for TMS4800, 9314, 9334
-rw-r--r--src/lib/netlist/devices/net_lib.cpp4
-rw-r--r--src/lib/netlist/devices/nld_dm9314.cpp32
-rw-r--r--src/lib/netlist/devices/nld_dm9314.h21
-rw-r--r--src/lib/netlist/devices/nld_dm9334.cpp33
-rw-r--r--src/lib/netlist/devices/nld_dm9334.h17
-rw-r--r--src/lib/netlist/devices/nld_tms4800.cpp38
-rw-r--r--src/lib/netlist/devices/nld_tms4800.h25
-rw-r--r--src/lib/netlist/macro/nlm_roms_lib.cpp26
-rw-r--r--src/lib/netlist/macro/nlm_roms_lib.h3
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx_lib.cpp39
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx_lib.h6
11 files changed, 85 insertions, 159 deletions
diff --git a/src/lib/netlist/devices/net_lib.cpp b/src/lib/netlist/devices/net_lib.cpp
index b9c6cd3f967..eb3ddf7a718 100644
--- a/src/lib/netlist/devices/net_lib.cpp
+++ b/src/lib/netlist/devices/net_lib.cpp
@@ -252,7 +252,6 @@ namespace devices
LIB_ENTRY(9322)
LIB_ENTRY(9334)
LIB_ENTRY(AM2847)
- // FIXME: duplicate?
LIB_ENTRY(CD4006)
LIB_ENTRY(CD4013)
LIB_ENTRY(CD4017)
@@ -269,14 +268,11 @@ namespace devices
LIB_ENTRY(MC1455P)
LIB_ENTRY(MC1455P_dip)
LIB_ENTRY(TMS4800)
- LIB_ENTRY(TMS4800_dip)
LIB_ENTRY(r2r_dac)
LIB_ENTRY(tristate)
LIB_ENTRY(tristate3)
LIB_ENTRY(8277_dip)
LIB_ENTRY(9602)
- LIB_ENTRY(9314_dip)
- LIB_ENTRY(9334_dip)
LIB_ENTRY(AM2847_dip)
LIB_ENTRY(MM5837_dip)
#endif
diff --git a/src/lib/netlist/devices/nld_dm9314.cpp b/src/lib/netlist/devices/nld_dm9314.cpp
index c941aadc0cf..8aa842c0214 100644
--- a/src/lib/netlist/devices/nld_dm9314.cpp
+++ b/src/lib/netlist/devices/nld_dm9314.cpp
@@ -42,6 +42,8 @@ namespace netlist
{
}
+ private:
+
NETLIB_RESETI()
{
m_last_MRQ = 0;
@@ -51,8 +53,6 @@ namespace netlist
m_last_Q = 0;
}
- friend class NETLIB_NAME(9314_dip);
- private:
NETLIB_HANDLERI(inputs)
{
netlist_time delay = NLTIME_FROM_NS(24); //FIXME!
@@ -97,35 +97,7 @@ namespace netlist
nld_power_pins m_power_pins;
};
- NETLIB_OBJECT(9314_dip)
- {
- NETLIB_CONSTRUCTOR(9314_dip)
- , A(*this, "A")
- {
- register_subalias("1", A.m_EQ);
- register_subalias("2", A.m_SQ[0]);
- register_subalias("3", A.m_D[0]);
- register_subalias("4", A.m_D[1]);
- register_subalias("5", A.m_SQ[2]);
- register_subalias("6", A.m_D[2]);
- register_subalias("7", A.m_D[3]);
- register_subalias("8", "A.GND");
-
- register_subalias("9", A.m_MRQ);
- register_subalias("10", A.m_Q[3]);
- register_subalias("11", A.m_SQ[3]);
- register_subalias("12", A.m_Q[2]);
- register_subalias("13", A.m_Q[1]);
- register_subalias("14", A.m_SQ[1]);
- register_subalias("15", A.m_Q[0]);
- register_subalias("16", "A.VCC");
- }
- private:
- NETLIB_SUB(9314) A;
- };
-
NETLIB_DEVICE_IMPL(9314, "TTL_9314", "+EQ,+MRQ,+S0Q,+S1Q,+S2Q,+S3Q,+D0,+D1,+D2,+D3,@VCC,@GND")
- NETLIB_DEVICE_IMPL(9314_dip, "TTL_9314_DIP", "")
} //namespace devices
} // namespace netlist
diff --git a/src/lib/netlist/devices/nld_dm9314.h b/src/lib/netlist/devices/nld_dm9314.h
index 4fc855c40b2..107b25464a6 100644
--- a/src/lib/netlist/devices/nld_dm9314.h
+++ b/src/lib/netlist/devices/nld_dm9314.h
@@ -6,22 +6,9 @@
#include "netlist/nl_setup.h"
-#define TTL_9314(name, cEQ, cMRQ, cS0Q, cS1Q, cS2Q, cS3Q, cD0, cD1, cD2, cD3) \
- NET_REGISTER_DEV(TTL_9314, name) \
- NET_CONNECT(name, GND, GND) \
- NET_CONNECT(name, VCC, VCC) \
- NET_CONNECT(name, EQ, cEQ) \
- NET_CONNECT(name, MRQ, cMRQ) \
- NET_CONNECT(name, S0Q, cS0Q) \
- NET_CONNECT(name, S1Q, cS1Q) \
- NET_CONNECT(name, S2Q, cS2Q) \
- NET_CONNECT(name, S3Q, cS3Q) \
- NET_CONNECT(name, D0, cD0) \
- NET_CONNECT(name, D1, cD1) \
- NET_CONNECT(name, D2, cD2) \
- NET_CONNECT(name, D3, cD3)
-
-#define TTL_9314_DIP(name) \
- NET_REGISTER_DEV(TTL_9314_DIP, name)
+// usage : TTL_9314(name, pEQ, pMRQ, pS0Q, pS1Q, pS2Q, pS3Q, pD0, pD1, pD2, pD3)
+// auto connect: VCC, GND
+#define TTL_9314(...) \
+ NET_REGISTER_DEVEXT(TTL_9314, __VA_ARGS__)
#endif /* NLD_DM9314_H_ */
diff --git a/src/lib/netlist/devices/nld_dm9334.cpp b/src/lib/netlist/devices/nld_dm9334.cpp
index 0755c4532f1..aa69d2c949d 100644
--- a/src/lib/netlist/devices/nld_dm9334.cpp
+++ b/src/lib/netlist/devices/nld_dm9334.cpp
@@ -86,6 +86,7 @@ namespace netlist
{
}
+ private:
NETLIB_RESETI()
{
m_last_CQ = 0;
@@ -95,8 +96,6 @@ namespace netlist
m_last_Q = 0;
}
- friend class NETLIB_NAME(9334_dip);
- private:
NETLIB_HANDLERI(inputs)
{
uint_fast8_t a = 0;
@@ -177,37 +176,7 @@ namespace netlist
nld_power_pins m_power_pins;
};
- NETLIB_OBJECT(9334_dip)
- {
- NETLIB_CONSTRUCTOR(9334_dip)
- , A(*this, "A")
- {
- register_subalias("1", A.m_A[0]);
- register_subalias("2", A.m_A[1]);
- register_subalias("3", A.m_A[2]);
- register_subalias("4", A.m_Q[0]);
- register_subalias("5", A.m_Q[1]);
- register_subalias("6", A.m_Q[2]);
- register_subalias("7", A.m_Q[3]);
- register_subalias("8", "A.GND");
-
- register_subalias("9", A.m_Q[4]);
- register_subalias("10", A.m_Q[5]);
- register_subalias("11", A.m_Q[6]);
- register_subalias("12", A.m_Q[7]);
- register_subalias("13", A.m_D);
- register_subalias("14", A.m_EQ);
- register_subalias("15", A.m_CQ);
- register_subalias("16", "A.VCC");
-
- }
- //NETLIB_RESETI() {}
- private:
- NETLIB_SUB(9334) A;
- };
-
NETLIB_DEVICE_IMPL(9334, "TTL_9334", "+CQ,+EQ,+D,+A0,+A1,+A2,@VCC,@GND")
- NETLIB_DEVICE_IMPL(9334_dip, "TTL_9334_DIP", "")
} //namespace devices
} // namespace netlist
diff --git a/src/lib/netlist/devices/nld_dm9334.h b/src/lib/netlist/devices/nld_dm9334.h
index f4edeb97306..052ab58fc82 100644
--- a/src/lib/netlist/devices/nld_dm9334.h
+++ b/src/lib/netlist/devices/nld_dm9334.h
@@ -6,18 +6,9 @@
#include "netlist/nl_setup.h"
-#define TTL_9334(name, cCQ, cEQ, cD, cA0, cA1, cA2) \
- NET_REGISTER_DEV(TTL_9334, name) \
- NET_CONNECT(name, GND, GND) \
- NET_CONNECT(name, VCC, VCC) \
- NET_CONNECT(name, CQ, cCQ) \
- NET_CONNECT(name, EQ, cEQ) \
- NET_CONNECT(name, D, cD) \
- NET_CONNECT(name, A0, cA0) \
- NET_CONNECT(name, A1, cA1) \
- NET_CONNECT(name, A2, cA2)
-
-#define TTL_9334_DIP(name) \
- NET_REGISTER_DEV(TTL_9334_DIP, name)
+// usage : TTL_9334(name, pCQ, pEQ, pD, pA0, pA1, pA2)
+// auto connect: VCC, GND
+#define TTL_9334(...) \
+ NET_REGISTER_DEVEXT(TTL_9334, __VA_ARGS__)
#endif /* NLD_DM9334_H_ */
diff --git a/src/lib/netlist/devices/nld_tms4800.cpp b/src/lib/netlist/devices/nld_tms4800.cpp
index 0c37821b37f..b52af34ca6a 100644
--- a/src/lib/netlist/devices/nld_tms4800.cpp
+++ b/src/lib/netlist/devices/nld_tms4800.cpp
@@ -46,7 +46,6 @@ namespace netlist
{
}
- friend class NETLIB_NAME(TMS4800_dip);
private:
// FIXME: timing!
// FIXME: CS: The code looks odd, looks like m_last_data should be pushed out.
@@ -87,45 +86,8 @@ namespace netlist
NETLIB_NAME(power_pins) m_supply;
};
- NETLIB_OBJECT(TMS4800_dip)
- {
- NETLIB_CONSTRUCTOR(TMS4800_dip)
- , A(*this, "A")
- {
- // FIXME: this device is missing supply pins
- register_subalias("2", A.m_A[0]);
- register_subalias("3", A.m_A[1]);
- register_subalias("4", A.m_A[2]);
- register_subalias("5", A.m_A[3]);
- register_subalias("6", A.m_A[4]);
- register_subalias("7", A.m_A[5]);
- register_subalias("12", A.m_A[6]);
- register_subalias("11", A.m_A[7]);
- register_subalias("10", A.m_A[8]);
- register_subalias("8", A.m_A[9]);
- register_subalias("15", A.m_A[10]);
-
- register_subalias("13", A.m_AR);
- register_subalias("24", A.m_OE1);
- register_subalias("14", A.m_OE2);
-
- register_subalias("23", A.m_D[0]);
- register_subalias("22", A.m_D[1]);
- register_subalias("21", A.m_D[2]);
- register_subalias("20", A.m_D[3]);
- register_subalias("19", A.m_D[4]);
- register_subalias("18", A.m_D[5]);
- register_subalias("17", A.m_D[6]);
- register_subalias("16", A.m_D[7]);
- }
- //NETLIB_RESETI() {}
- private:
- NETLIB_SUB(TMS4800) A;
-
- };
NETLIB_DEVICE_IMPL(TMS4800, "ROM_TMS4800", "+AR,+OE1,+OE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10,@VCC,@GND")
- NETLIB_DEVICE_IMPL(TMS4800_dip, "ROM_TMS4800_DIP", "")
} //namespace devices
} // namespace netlist
diff --git a/src/lib/netlist/devices/nld_tms4800.h b/src/lib/netlist/devices/nld_tms4800.h
index 63bcff9e7e9..57abe34e031 100644
--- a/src/lib/netlist/devices/nld_tms4800.h
+++ b/src/lib/netlist/devices/nld_tms4800.h
@@ -6,26 +6,9 @@
#include "netlist/nl_setup.h"
-#define ROM_TMS4800(name, cAR, cOE1, cOE2, cA0, cA1, cA2, cA3, cA4, cA5, cA6, cA7, cA8, cA9, cA10) \
- NET_REGISTER_DEV(ROM_TMS4800, name) \
- NET_CONNECT(name, AR, cAR) \
- NET_CONNECT(name, OE1, cOE1) \
- NET_CONNECT(name, OE2, cOE2) \
- NET_CONNECT(name, A0, cA0) \
- NET_CONNECT(name, A1, cA1) \
- NET_CONNECT(name, A2, cA2) \
- NET_CONNECT(name, A3, cA3) \
- NET_CONNECT(name, A4, cA4) \
- NET_CONNECT(name, A5, cA5) \
- NET_CONNECT(name, A6, cA6) \
- NET_CONNECT(name, A7, cA7) \
- NET_CONNECT(name, A8, cA8) \
- NET_CONNECT(name, A9, cA9) \
- NET_CONNECT(name, A10, cA10) \
- NET_CONNECT(name, VCC, VCC) \
- NET_CONNECT(name, GND, GND)
-
-#define ROM_TMS4800_DIP(name) \
- NET_REGISTER_DEV(ROM_TMS4800_DIP, name)
+// usage : ROM_TMS4800(name, pAR, pOE1, pOE2, pA0, pA1, pA2, pA3, pA4, pA5, pA6, pA7, pA8, pA9, pA10)
+// auto connect: VCC, GND
+#define ROM_TMS4800(...) \
+ NET_REGISTER_DEVEXT(ROM_TMS4800, __VA_ARGS__)
#endif /* NLD_TMS4800_H_ */
diff --git a/src/lib/netlist/macro/nlm_roms_lib.cpp b/src/lib/netlist/macro/nlm_roms_lib.cpp
index a7e9ae06a0c..61d0638944d 100644
--- a/src/lib/netlist/macro/nlm_roms_lib.cpp
+++ b/src/lib/netlist/macro/nlm_roms_lib.cpp
@@ -414,8 +414,7 @@ NETLIST_END()
* A0 |8 9| GND
* +--------------+
*/
-
- static NETLIST_START(RAM_2102A_DIP)
+static NETLIST_START(RAM_2102A_DIP)
RAM_2102A(A)
DIPPINS( /* +--------------+ */
@@ -431,6 +430,27 @@ NETLIST_END()
)
NETLIST_END()
+//FIXME: Documentation
+static NETLIST_START(ROM_TMS4800_DIP)
+ ROM_TMS4800(A)
+
+ DIPPINS( /* +----------------+ */
+ A.VSS, /* VSS |1 ++ 24| OE1 */ A.OE1,
+ A.A1, /* A1 |2 23| O1 */ A.O1,
+ A.A2, /* A2 |3 22| O2 */ A.O2,
+ A.A3, /* A3 |4 TMS-4800 21| O3 */ A.O3,
+ A.A4, /* A4 |5 20| O4 */ A.O4,
+ A.A5, /* A5 |6 19| O5 */ A.O5,
+ A.A6, /* A6 |7 18| O6 */ A.O6,
+ A.A10, /* A10 |8 17| O7 */ A.O7,
+ A.VGG, /* VGG |9 16| O8 */ A.O8,
+ A.A9, /* A9 |10 15| A11 */ A.A11,
+ A.A8, /* A8 |11 14| OE2 */ A.OE2,
+ A.A7, /* A7 |12 13| AR */ A.AR
+ /* +----------------+ */
+ )
+NETLIST_END()
+
NETLIST_START(roms_lib)
@@ -442,6 +462,6 @@ NETLIST_START(roms_lib)
LOCAL_LIB_ENTRY(PROM_82S115_DIP)
LOCAL_LIB_ENTRY(PROM_MK28000_DIP)
LOCAL_LIB_ENTRY(RAM_2102A_DIP)
-
+ LOCAL_LIB_ENTRY(ROM_TMS4800_DIP)
NETLIST_END()
diff --git a/src/lib/netlist/macro/nlm_roms_lib.h b/src/lib/netlist/macro/nlm_roms_lib.h
index 2dcec6ca37b..aca01bbcf91 100644
--- a/src/lib/netlist/macro/nlm_roms_lib.h
+++ b/src/lib/netlist/macro/nlm_roms_lib.h
@@ -43,6 +43,9 @@
#define RAM_2102A_DIP(name) \
NET_REGISTER_DEV(RAM_2102A_DIP, name)
+#define ROM_TMS4800_DIP(name) \
+ NET_REGISTER_DEV(ROM_TMS4800, name)
+
#endif // NL_AUTO_DEVICES
diff --git a/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp b/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp
index 87c1a1d25b6..82344a914e8 100644
--- a/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp
+++ b/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp
@@ -2851,6 +2851,23 @@ static NETLIST_START(TTL_9312_DIP)
)
NETLIST_END()
+// FIXME: Documenation
+static NETLIST_START(TTL_9314_DIP)
+ TTL_9314(A)
+
+ DIPPINS( /* +--------------+ */
+ A.EQ, /* /E |1 ++ 16| VCC */ A.VCC,
+ A.S0Q, /* /S0 |2 15| Q0 */ A.Q0,
+ A.D0, /* D0 |3 14| /S1 */ A.S1Q,
+ A.D1, /* D1 |4 DM9314 13| Q1 */ A.Q1,
+ A.S2Q, /* /S2 |5 12| Q2 */ A.Q2,
+ A.D2, /* D2 |6 11| /S3 */ A.S3Q,
+ A.D3, /* D3 |7 10| Q3 */ A.Q3,
+ A.GND, /* GND |8 9| /MR */ A.MRQ
+ /* +--------------+ */
+ )
+NETLIST_END()
+
//- Identifier: TTL_9316_DIP
//- Title: DM9316/DM8316 Synchronous 4-Bit Counters
//- Description: These synchronous, presettable counters feature an
@@ -2972,6 +2989,24 @@ static NETLIST_START(TTL_9321_DIP)
)
NETLIST_END()
+
+//FIXME: Documenation
+static NETLIST_START(TTL_9334_DIP)
+ TTL_9334(A)
+
+ DIPPINS(/* +--------------+ */
+ A.A0, /* A0 |1 ++ 16| VCC */ A.VCC,
+ A.A1, /* A1 |2 15| /C */ A.CQ,
+ A.A2, /* A2 |3 14| /E */ A.EQ,
+ A.Q0, /* Q0 |4 DM9334 13| D */ A.D,
+ A.Q1, /* Q1 |5 12| Q7 */ A.Q7,
+ A.Q2, /* Q2 |6 11| Q6 */ A.Q6,
+ A.Q3, /* Q3 |7 10| Q5 */ A.Q5,
+ A.GND,/* GND |8 9| Q4 */ A.Q4
+ /* +--------------+ */
+ )
+NETLIST_END()
+
//- Identifier: TTL_9602_DIP
//- Title: DM9602/DM6802 Dual Retriggerable, Resettable One Shots
//- Description: These dual resettable, retriggerable one shots have two
@@ -3411,9 +3446,11 @@ NETLIST_START(ttl74xx_lib)
LOCAL_LIB_ENTRY(TTL_74379_DIP)
LOCAL_LIB_ENTRY(TTL_74393_DIP)
LOCAL_LIB_ENTRY(SN74LS629_DIP)
- LOCAL_LIB_ENTRY(TTL_9312_DIP)
LOCAL_LIB_ENTRY(TTL_9310_DIP)
+ LOCAL_LIB_ENTRY(TTL_9312_DIP)
+ LOCAL_LIB_ENTRY(TTL_9314_DIP)
LOCAL_LIB_ENTRY(TTL_9316_DIP)
LOCAL_LIB_ENTRY(TTL_9321_DIP)
LOCAL_LIB_ENTRY(TTL_9322_DIP)
+ LOCAL_LIB_ENTRY(TTL_9334_DIP)
NETLIST_END()
diff --git a/src/lib/netlist/macro/nlm_ttl74xx_lib.h b/src/lib/netlist/macro/nlm_ttl74xx_lib.h
index ee9aa89291e..137a120ac73 100644
--- a/src/lib/netlist/macro/nlm_ttl74xx_lib.h
+++ b/src/lib/netlist/macro/nlm_ttl74xx_lib.h
@@ -290,6 +290,9 @@
#define TTL_9312_DIP(name) \
NET_REGISTER_DEV(TTL_9312_DIP, name)
+#define TTL_9314_DIP(name) \
+ NET_REGISTER_DEV(TTL_9314_DIP, name)
+
#define TTL_9310_DIP(name) \
NET_REGISTER_DEV(TTL_9310_DIP, name)
@@ -302,6 +305,9 @@
#define TTL_9322_DIP(name) \
NET_REGISTER_DEV(TTL_9322_DIP, name)
+#define TTL_9334_DIP(name) \
+ NET_REGISTER_DEV(TTL_9334_DIP, name)
+
#endif // NL_AUTO_DEVICES
/* ----------------------------------------------------------------------------