diff options
| author | 2017-05-27 03:57:50 +1000 | |
|---|---|---|
| committer | 2017-05-27 03:57:50 +1000 | |
| commit | 2b7d87317bca96353a23e7b178c92fed432b30af (patch) | |
| tree | 55da257f3482afa44349da33d5eed63ec200fabe /src/lib/netlist | |
| parent | 08d9b99986acdb2915dd4fe8617b8fb36e9978b8 (diff) | |
Preliminary netlist sound for the Zaccaria 1B11142 board
* Tromba (trumpet) sound is not working - requires Schmitt trigger device
* Connecting cassa (bass drum) swamps other instruments so it's disconnected for now
* Mixing melody sound with speech/SFX is not done in netlist (should be)
* Relative levels of melody/speech/SFX are probably still wrong
(nw) A good test case for this is the Money Money driver (monymony).
There's a bit of buzzing on this one as well. The problem with the
cassa could be caused by running into non-ideal characteristics of opams
again (the LM3900 seems to ignore the V+ value supplied to it). When
the netlist library gets Schmitt trigger support, the tromba can be
completed. Unfortunately, the tromba is a key part of the
characteristic sound of these boards, so you really notice when it's
lacking.
Diffstat (limited to 'src/lib/netlist')
| -rw-r--r-- | src/lib/netlist/macro/nlm_ttl74xx.cpp | 125 | ||||
| -rw-r--r-- | src/lib/netlist/macro/nlm_ttl74xx.h | 6 |
2 files changed, 129 insertions, 2 deletions
diff --git a/src/lib/netlist/macro/nlm_ttl74xx.cpp b/src/lib/netlist/macro/nlm_ttl74xx.cpp index 5a8120518b1..369b5816bf0 100644 --- a/src/lib/netlist/macro/nlm_ttl74xx.cpp +++ b/src/lib/netlist/macro/nlm_ttl74xx.cpp @@ -531,11 +531,86 @@ static NETLIST_START(TTL_7486_DIP) s1.A, /* A1 |1 ++ 14| VCC */ VCC.I, s1.B, /* B1 |2 13| B4 */ s4.B, s1.Q, /* Y1 |3 12| A4 */ s4.A, - s2.A, /* A2 |4 7400 11| Y4 */ s4.Q, + s2.A, /* A2 |4 7486 11| Y4 */ s4.Q, s2.B, /* B2 |5 10| B3 */ s3.B, s2.Q, /* Y2 |6 9| A3 */ s3.A, GND.I, /* GND |7 8| Y3 */ s3.Q - /* +--------------+ */ + /* +--------------+ */ + ) +NETLIST_END() + +/* + * DM74155/DM74156: Dual 2-Line to 4-Line Decoders/Demultiplexers + * + * +-----+-------++-----------------+ + * | B A | G1 C1 || 1Y0 1Y1 1Y2 1Y3 | + * +=====+=======++=================+ + * | X X | 1 X || 1 1 1 1 | + * | 0 0 | 0 1 || 0 1 1 1 | + * | 0 1 | 0 1 || 1 0 1 1 | + * | 1 0 | 0 1 || 1 1 0 1 | + * | 1 1 | 0 1 || 1 1 1 0 | + * | X X | X 0 || 1 1 1 1 | + * +-----+-------++-----------------+ + * + * +-----+-------++-----------------+ + * | B A | G2 C2 || 2Y0 2Y1 2Y2 2Y3 | + * +=====+=======++=================+ + * | X X | 1 X || 1 1 1 1 | + * | 0 0 | 0 0 || 0 1 1 1 | + * | 0 1 | 0 0 || 1 0 1 1 | + * | 1 0 | 0 0 || 1 1 0 1 | + * | 1 1 | 0 0 || 1 1 1 0 | + * | X X | X 1 || 1 1 1 1 | + * +-----+-------++-----------------+ + * + * Naming conventions follow National Semiconductor datasheet + * + */ + +static NETLIST_START(TTL_74155_DIP) + NET_REGISTER_DEV(TTL_74155A_GATE, s1) + NET_REGISTER_DEV(TTL_74155B_GATE, s2) + + NET_C(s1.A, s2.A) + NET_C(s1.B, s2.B) + + DUMMY_INPUT(GND) + DUMMY_INPUT(VCC) + + DIPPINS( /* +--------------+ */ + s1.C, /* C1 |1 ++ 16| VCC */ VCC.I, + s1.G, /* G1 |2 15| B4 */ s2.C, + s1.B, /* B |3 14| B4 */ s2.G, + s1.3, /* 1Y3 |4 74155 13| A4 */ s2.A, + s2.2, /* 1Y2 |5 12| Y4 */ s2.3, + s2.1, /* 1Y1 |6 11| B3 */ s2.2, + s2.0, /* 1Y0 |7 10| A3 */ s2.1, + GND.I, /* GND |8 9| Y3 */ s2.0 + /* +--------------+ */ + ) +NETLIST_END() + +static NETLIST_START(TTL_74156_DIP) + NET_REGISTER_DEV(TTL_74156A_GATE, s1) + NET_REGISTER_DEV(TTL_74156B_GATE, s2) + + NET_C(s1.A, s2.A) + NET_C(s1.B, s2.B) + + DUMMY_INPUT(GND) + DUMMY_INPUT(VCC) + + DIPPINS( /* +--------------+ */ + s1.C, /* C1 |1 ++ 16| VCC */ VCC.I, + s1.G, /* G1 |2 15| B4 */ s2.C, + s1.B, /* B |3 14| B4 */ s2.G, + s1.3, /* 1Y3 |4 74156 13| A4 */ s2.A, + s2.2, /* 1Y2 |5 12| Y4 */ s2.3, + s2.1, /* 1Y1 |6 11| B3 */ s2.2, + s2.0, /* 1Y0 |7 10| A3 */ s2.1, + GND.I, /* GND |8 9| Y3 */ s2.0 + /* +--------------+ */ ) NETLIST_END() @@ -930,6 +1005,50 @@ NETLIST_START(TTL74XX_lib) TT_FAMILY("74XX") TRUTHTABLE_END() + TRUTHTABLE_START(TTL_74155A_GATE, 4, 4, "") + TT_HEAD("B,A,G,C|0,1,2,3") + TT_LINE("X,X,1,X|1,1,1,1|13,13,13,13") + TT_LINE("X,X,0,0|1,1,1,1|13,13,13,13") + TT_LINE("0,0,0,1|0,1,1,1|13,13,13,13") + TT_LINE("0,1,0,1|1,0,1,1|13,13,13,13") + TT_LINE("1,0,0,1|1,1,0,1|13,13,13,13") + TT_LINE("1,1,0,1|1,1,1,0|13,13,13,13") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_74155B_GATE, 4, 4, "") + TT_HEAD("B,A,G,C|0,1,2,3") + TT_LINE("X,X,1,X|1,1,1,1|13,13,13,13") + TT_LINE("X,X,0,1|1,1,1,1|13,13,13,13") + TT_LINE("0,0,0,0|0,1,1,1|13,13,13,13") + TT_LINE("0,1,0,0|1,0,1,1|13,13,13,13") + TT_LINE("1,0,0,0|1,1,0,1|13,13,13,13") + TT_LINE("1,1,0,0|1,1,1,0|13,13,13,13") + TT_FAMILY("74XX") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_74156A_GATE, 4, 4, "") + TT_HEAD("B,A,G,C|0,1,2,3") + TT_LINE("X,X,1,X|1,1,1,1|13,13,13,13") + TT_LINE("X,X,0,0|1,1,1,1|13,13,13,13") + TT_LINE("0,0,0,1|0,1,1,1|13,13,13,13") + TT_LINE("0,1,0,1|1,0,1,1|13,13,13,13") + TT_LINE("1,0,0,1|1,1,0,1|13,13,13,13") + TT_LINE("1,1,0,1|1,1,1,0|13,13,13,13") + TT_FAMILY("74XXOC") + TRUTHTABLE_END() + + TRUTHTABLE_START(TTL_74156B_GATE, 4, 4, "") + TT_HEAD("B,A,G,C|0,1,2,3") + TT_LINE("X,X,1,X|1,1,1,1|13,13,13,13") + TT_LINE("X,X,0,1|1,1,1,1|13,13,13,13") + TT_LINE("0,0,0,0|0,1,1,1|13,13,13,13") + TT_LINE("0,1,0,0|1,0,1,1|13,13,13,13") + TT_LINE("1,0,0,0|1,1,0,1|13,13,13,13") + TT_LINE("1,1,0,0|1,1,1,0|13,13,13,13") + TT_FAMILY("74XXOC") + TRUTHTABLE_END() + TRUTHTABLE_START(TTL_74260_GATE, 5, 1, "") TT_HEAD("A,B,C,D,E|Q ") TT_LINE("0,0,0,0,0|1|10") @@ -1008,6 +1127,8 @@ NETLIST_START(TTL74XX_lib) LOCAL_LIB_ENTRY(TTL_7432_DIP) LOCAL_LIB_ENTRY(TTL_7437_DIP) LOCAL_LIB_ENTRY(TTL_7486_DIP) + LOCAL_LIB_ENTRY(TTL_74155_DIP) + LOCAL_LIB_ENTRY(TTL_74156_DIP) LOCAL_LIB_ENTRY(TTL_74260_DIP) LOCAL_LIB_ENTRY(TTL_74279_DIP) LOCAL_LIB_ENTRY(DM9312_DIP) diff --git a/src/lib/netlist/macro/nlm_ttl74xx.h b/src/lib/netlist/macro/nlm_ttl74xx.h index 693c885ce66..18c0cfe6138 100644 --- a/src/lib/netlist/macro/nlm_ttl74xx.h +++ b/src/lib/netlist/macro/nlm_ttl74xx.h @@ -186,6 +186,12 @@ #define TTL_7486_DIP(name) \ NET_REGISTER_DEV(TTL_7486_DIP, name) +#define TTL_74155_DIP(name) \ + NET_REGISTER_DEV(TTL_74155_DIP, name) + +#define TTL_74156_DIP(name) \ + NET_REGISTER_DEV(TTL_74156_DIP, name) + #define TTL_74260_GATE(name) \ NET_REGISTER_DEV(TTL_74260_GATE, name) |
