1 // license:BSD-3-Clause
2 // copyright-holders:Derrick Renaud, Roberto Fresca
3 /************************************************************************
4  * Noraut/Kimble/Kramer Poker Sound System Analog emulation
5  * Sept 2009, Derrick Renaud & Roberto Fresca.
6  ************************************************************************/
7 
8 #include "emu.h"
9 #include "includes/norautp.h"
10 
11 
12 /* Discrete Sound Input Nodes */
13 /* defined in norautp.h */
14 
15 
16 static const discrete_555_desc desc_norautp_555 =
17 {
18 	DISC_555_OUT_ENERGY | DISC_555_OUT_AC,
19 	5,              // B+ voltage of 555
20 	DEFAULT_555_VALUES
21 };
22 
23 
24 #define NORAUTP_SOUND_CIRCUIT(_name, _r1, _r2, _c1, _c2, _c3, _c4)          \
25 static const discrete_comp_adder_table desc_##_name##_caps =                \
26 {                                                                           \
27 	DISC_COMP_P_CAPACITOR, _c4, 3,                                          \
28 	{                                                                       \
29 		_c3, _c2, _c1                                                       \
30 	}                                                                       \
31 };                                                                          \
32 																			\
33 DISCRETE_SOUND_START( _name##_discrete )                                    \
34 	/************************************************                       \
35 	 * Input register mapping                                               \
36 	 ************************************************/                      \
37 	DISCRETE_INPUT_LOGIC(NORAUTP_SND_EN)                                    \
38 	DISCRETE_INPUT_DATA (NORAUTP_FREQ_DATA)                                 \
39 																			\
40 	/************************************************                       \
41 	 * Tone Generator                                                       \
42 	 ************************************************/                      \
43 	DISCRETE_COMP_ADDER(NODE_20, NORAUTP_FREQ_DATA, &desc_##_name##_caps)   \
44 	DISCRETE_555_ASTABLE(NODE_21,                                           \
45 							NORAUTP_SND_EN,                 /* RESET */     \
46 							_r2, _r1, NODE_20, &desc_norautp_555)              \
47 																			\
48 	DISCRETE_OUTPUT(NODE_21, 65000.0/3.8)                                   \
49 DISCRETE_SOUND_END
50 
51 
52 /***** Noraut Poker *****/
53 
54 /* Parts List - Resistors */
55 #define NORAUTP_R1      RES_K(120)
56 #define NORAUTP_R2      RES_K(2.2)
57 
58 /* Parts List - Capacitors */
59 #define NORAUTP_C1      CAP_U(.01)
60 #define NORAUTP_C2      CAP_U(.022)
61 #define NORAUTP_C3      CAP_U(.047)
62 #define NORAUTP_C4      CAP_U(.01)
63 
64 NORAUTP_SOUND_CIRCUIT(norautp,
65 	NORAUTP_R1, NORAUTP_R2,
66 	NORAUTP_C1, NORAUTP_C2, NORAUTP_C3, NORAUTP_C4)
67 
68 
69 /***** Draw Poker HI-LO *****/
70 
71 /* Parts List - Resistors */
72 #define DPHL_R1     RES_K(120)
73 #define DPHL_R2     RES_K(1)
74 
75 /* Parts List - Capacitors */
76 #define DPHL_C1     CAP_U(.01)
77 #define DPHL_C2     CAP_U(.022)
78 #define DPHL_C3     CAP_U(.05)
79 #define DPHL_C4     CAP_U(.01)
80 
81 NORAUTP_SOUND_CIRCUIT(dphl,
82 	DPHL_R1, DPHL_R2,
83 	DPHL_C1, DPHL_C2, DPHL_C3, DPHL_C4)
84 
85 
86 /***** Kimble Double HI-LO *****/
87 
88 /* Parts List - Resistors */
89 #define KIMBLE_R1       RES_K(100)
90 #define KIMBLE_R2       RES_K(1)
91 
92 /* Parts List - Capacitors */
93 #define KIMBLE_C1       CAP_U(.01)
94 #define KIMBLE_C2       CAP_U(.022)
95 #define KIMBLE_C3       CAP_U(.047)
96 #define KIMBLE_C4       CAP_U(.01)
97 
98 NORAUTP_SOUND_CIRCUIT(kimble,
99 	KIMBLE_R1, KIMBLE_R2,
100 	KIMBLE_C1, KIMBLE_C2, KIMBLE_C3, KIMBLE_C4)
101