Previous 199869 Revisions Next

r31070 Saturday 21st June, 2014 at 23:36:53 UTC by Couriersud
Netlist:
- Device definitions now can specify the logic family (i.e. TTL, CD4000)
- fixed timing on 4020
[src/emu/netlist]nl_base.c nl_base.h
[src/emu/netlist/devices]nld_4020.c nld_4020.h nld_4066.h nld_system.c nld_system.h

trunk/src/emu/netlist/devices/nld_system.c
r31069r31070
118118    if (state != m_last_state)
119119    {
120120        m_last_state = state;
121        const double R = state ? m_family_desc->m_R_high : m_family_desc->m_R_low;
122        const double V = state ? m_family_desc->m_high_V : m_family_desc->m_low_V;
121        const double R = state ? m_logic_family->m_R_high : m_logic_family->m_R_low;
122        const double V = state ? m_logic_family->m_high_V : m_logic_family->m_low_V;
123123
124124        // We only need to update the net first if this is a time stepping net
125125        if (m_RV.m_P.net().as_analog().solver()->is_timestep())
trunk/src/emu/netlist/devices/nld_system.h
r31069r31070
124124         : netlist_device_t()
125125   {
126126      assert(in_proxied.family() == LOGIC);
127      m_I.m_family_desc = in_proxied.m_family_desc;
127      m_I.m_logic_family = in_proxied.m_logic_family;
128128   }
129129
130130   ATTR_COLD virtual ~nld_a_to_d_proxy() {}
r31069r31070
145145
146146   ATTR_HOT ATTR_ALIGN void update()
147147   {
148      if (m_I.Q_Analog() > m_I.m_family_desc->m_high_thresh_V)
148      if (m_I.Q_Analog() > m_I.m_logic_family->m_high_thresh_V)
149149         OUTLOGIC(m_Q, 1, NLTIME_FROM_NS(1));
150      else if (m_I.Q_Analog() < m_I.m_family_desc->m_low_thresh_V)
150      else if (m_I.Q_Analog() < m_I.m_logic_family->m_low_thresh_V)
151151         OUTLOGIC(m_Q, 0, NLTIME_FROM_NS(1));
152152      //else
153153      //  OUTLOGIC(m_Q, m_Q.net().last_Q(), NLTIME_FROM_NS(1));
r31069r31070
166166         : netlist_device_t()
167167   {
168168      assert(out_proxied.family() == LOGIC);
169      m_family_desc = out_proxied.m_family_desc;
169      m_logic_family = out_proxied.m_logic_family;
170170   }
171171
172172   ATTR_COLD virtual ~nld_base_d_to_a_proxy() {}
r31069r31070
181181      register_input("I", m_I);
182182   }
183183
184    ATTR_COLD virtual const netlist_logic_family_desc_t *logic_family()
185    {
186        return m_logic_family;
187    }
188
189    const netlist_logic_family_desc_t *m_logic_family;
184190private:
185191};
186192
r31069r31070
214220
215221   ATTR_HOT ATTR_ALIGN void update()
216222   {
217      OUTANALOG(m_Q, INPLOGIC(m_I) ? m_family_desc->m_high_V : m_family_desc->m_low_V, NLTIME_FROM_NS(1));
223      OUTANALOG(m_Q, INPLOGIC(m_I) ? m_logic_family->m_high_V : m_logic_family->m_low_V, NLTIME_FROM_NS(1));
218224   }
219225
220226private:
trunk/src/emu/netlist/devices/nld_4020.c
r31069r31070
7373    if (INPLOGIC(m_RESET))
7474    {
7575        sub.m_cnt = 0;
76        sub.m_IP.inactivate();
7677        static const netlist_time reset_time = netlist_time::from_nsec(140);
7778        OUTLOGIC(sub.m_Q[0], 0, reset_time);
7879        for (int i=3; i<14; i++)
7980            OUTLOGIC(sub.m_Q[i], 0, reset_time);
8081    }
81
82    else
83        sub.m_IP.activate_hl();
8284}
8385
8486inline NETLIB_FUNC_VOID(4020_sub, update_outputs, (const UINT16 cnt))
8587{
86   const netlist_time out_delayQ1 = netlist_time::from_nsec(180);
87    const netlist_time out_delayQn = netlist_time::from_nsec(100);
88    static const netlist_time out_delayQn[14] = {
89            NLTIME_FROM_NS(180), NLTIME_FROM_NS(280),
90            NLTIME_FROM_NS(380), NLTIME_FROM_NS(480),
91            NLTIME_FROM_NS(580), NLTIME_FROM_NS(680),
92            NLTIME_FROM_NS(780), NLTIME_FROM_NS(880),
93            NLTIME_FROM_NS(980), NLTIME_FROM_NS(1080),
94            NLTIME_FROM_NS(1180), NLTIME_FROM_NS(1280),
95            NLTIME_FROM_NS(1380), NLTIME_FROM_NS(1480),
96    };
8897
89    OUTLOGIC(m_Q[0], 0, out_delayQ1);
98    OUTLOGIC(m_Q[0], 0, out_delayQn[0]);
9099    for (int i=3; i<14; i++)
91        OUTLOGIC(m_Q[i], (cnt >> i) & 1, out_delayQn);
100        OUTLOGIC(m_Q[i], (cnt >> i) & 1, out_delayQn[i]);
92101}
93102
94103NETLIB_START(4020_dip)
trunk/src/emu/netlist/devices/nld_4020.h
r31069r31070
4141      NET_REGISTER_DEV(4020_dip, _name)
4242
4343NETLIB_SUBDEVICE(4020_sub,
44   ATTR_HOT void update_outputs(const UINT16 cnt);
4544
45    NETLIB_LOGIC_FAMILY(CD4000)
46    ATTR_HOT void update_outputs(const UINT16 cnt);
47
4648   netlist_ttl_input_t m_IP;
4749
4850   netlist_state_t<UINT16> m_cnt;
r31069r31070
5153);
5254
5355NETLIB_DEVICE(4020,
56    NETLIB_LOGIC_FAMILY(CD4000)
5457   NETLIB_NAME(4020_sub) sub;
5558    NETLIB_NAME(vdd_vss) m_supply;
5659    netlist_ttl_input_t m_RESET;
trunk/src/emu/netlist/devices/nld_4066.h
r31069r31070
3131      NET_REGISTER_DEV(4066_dip, _name)
3232
3333NETLIB_SUBDEVICE(4066,
34    NETLIB_LOGIC_FAMILY(CD4000)
3435public:
3536
3637   netlist_analog_input_t m_control;
r31069r31070
4041);
4142
4243NETLIB_DEVICE(4066_dip,
44    NETLIB_LOGIC_FAMILY(CD4000)
4345
4446   NETLIB_NAME(4066) m_A;
4547   NETLIB_NAME(4066) m_B;
trunk/src/emu/netlist/nl_base.c
r31069r31070
1111
1212const netlist_time netlist_time::zero = netlist_time::from_raw(0);
1313
14netlist_logic_family_desc_t netlist_family_ttl =
14netlist_logic_family_desc_t netlist_family_TTL =
1515{
1616      0.8, // m_low_thresh_V
1717      2.0, // m_high_thresh_V
r31069r31070
2121      130.0, //  m_R_high;
2222};
2323
24//FIXME: set to proper values
25netlist_logic_family_desc_t netlist_family_CD4000 =
26{
27        0.8, // m_low_thresh_V
28        2.0, // m_high_thresh_V
29        0.3, // m_low_V  - these depend on sinked/sourced current. Values should be suitable for typical applications.
30        3.7, // m_high_V
31        1.0, // m_R_low;
32        130.0, //  m_R_high;
33};
34
2435// ----------------------------------------------------------------------------------------
2536// netlist_queue_t
2637// ----------------------------------------------------------------------------------------
r31069r31070
320331// net_core_device_t
321332// ----------------------------------------------------------------------------------------
322333
323ATTR_COLD netlist_core_device_t::netlist_core_device_t(const family_t afamily, const netlist_logic_family_desc_t *family_desc)
324: netlist_object_t(DEVICE, afamily), m_family_desc(family_desc)
334ATTR_COLD netlist_core_device_t::netlist_core_device_t(const family_t afamily)
335: netlist_object_t(DEVICE, afamily)
325336{
326337    assert((afamily == GENERIC && family_desc != NULL) || (afamily != GENERIC && family_desc == NULL));
327338}
r31069r31070
360371// ----------------------------------------------------------------------------------------
361372
362373netlist_device_t::netlist_device_t()
363   : netlist_core_device_t(GENERIC, &netlist_family_ttl),
374   : netlist_core_device_t(GENERIC),
364375      m_terminals(20)
365376{
366377}
367378
368379netlist_device_t::netlist_device_t(const family_t afamily)
369   : netlist_core_device_t(afamily, NULL),
380   : netlist_core_device_t(afamily),
370381      m_terminals(20)
371382{
372383}
r31069r31070
413424
414425ATTR_COLD void netlist_device_t::register_output(const pstring &name, netlist_output_t &port)
415426{
416   port.m_family_desc = this->m_family_desc;
427   port.m_logic_family = this->logic_family();
417428   setup().register_object(*this, name, port);
418429}
419430
420431ATTR_COLD void netlist_device_t::register_input(const pstring &name, netlist_input_t &inp)
421432{
422   inp.m_family_desc = this->m_family_desc;
433   inp.m_logic_family = this->logic_family();
423434   setup().register_object(*this, name, inp);
424435   m_terminals.add(inp.name());
425436}
r31069r31070
744755ATTR_COLD netlist_core_terminal_t::netlist_core_terminal_t(const type_t atype, const family_t afamily)
745756: netlist_owned_object_t(atype, afamily)
746757, plinkedlist_element_t<netlist_core_terminal_t>()
747, m_family_desc(NULL)
758, m_logic_family(NULL)
748759, m_net(NULL)
749760, m_state(STATE_NONEX)
750761{
trunk/src/emu/netlist/nl_base.h
r31069r31070
2020 *  | rail net                                  |
2121 *  +-------------------------------------------+
2222 *
23 *  A rail net is a net which is driven by exactly one output with an (idealized) internal resistance
24 *  of zero. Ideally, it can deliver infinite current.
23 *  A rail net is a net which is driven by exactly one output with an
24 *  (idealized) internal resistance of zero.
25 *  Ideally, it can deliver infinite current.
2526 *
2627 *  A infinite resistance input does not source or sink current.
2728 *
2829 *  Terminals source or sink finite (but never zero) current.
2930 *
30 *  The system differentiates between analog and logic input and outputs and analog terminals.
31 *  Analog and logic devices can not be connected to the same net. Instead, proxy devices
32 *  are inserted automatically:
31 *  The system differentiates between analog and logic input and outputs and
32 *  analog terminals. Analog and logic devices can not be connected to the
33 *  same net. Instead, proxy devices are inserted automatically:
3334 *
3435 *  +---+     +---+
3536 *  |   |     |   |
r31069r31070
5758 *  This works both analog to logic as well as logic to analog.
5859 *
5960 *  The above is an advanced implementation of the existing discrete
60 *  subsystem in MAME. Instead of relying on a fixed time-step, analog devices could
61 *  either connect to fixed time-step clock or use an internal clock to update them.
62 *  This would however introduce macro devices for RC, diodes and transistors again.
61 *  subsystem in MAME. Instead of relying on a fixed time-step, analog devices
62 *  could either connect to fixed time-step clock or use an internal clock
63 *  to update them. This would however introduce macro devices for RC, diodes
64 *  and transistors again.
6365 *
64 *  ====================================================================================
66 *  ============================================================================
6567 *
66 *  Instead, the following approach in case of a pure terminal/input network is taken:
68 *  Instead, the following approach in case of a pure terminal/input network
69 *  is taken:
6770 *
6871 *  +---+     +---+     +---+     +---+     +---+
6972 *  |   |     |   |     |   |     |   |     |   |
r31069r31070
9699 *  +-----T-----+
97100 *       (l)
98101 *
99 *  This is a resistance in series to a voltage source and paralleled by a current source.
100 *  This is suitable to model voltage sources, current sources, resistors, capacitors,
101 *  inductances and diodes.
102 *  This is a resistance in series to a voltage source and paralleled by a
103 *  current source. This is suitable to model voltage sources, current sources,
104 *  resistors, capacitors, inductances and diodes.
102105 *
103106 *  I(n,l) = - I(n,k) = ( V(k) - V - V(l) ) * (1/R(n)) + I(n)
104107 *
r31069r31070
120123 *
121124 *  (G - D) * V = I
122125 *
123 *  with G being the conductance matrix, D a diagonal matrix with the total conductance
124 *  on the diagonal elements, V the net voltage vector and I the current vector.
126 *  with G being the conductance matrix, D a diagonal matrix with the total
127 *  conductance on the diagonal elements, V the net voltage vector and I the
128 *  current vector.
125129 *
126130 *  By using solely two terminal devices, we can simplify the whole calculation
127131 *  significantly. A BJT now is a four terminal device with two terminals being
r31069r31070
141145 *  b) Voltage source
142146 *  c) Current source/sink
143147 *
144 *  Going forward, the approach can be extended e.g. to use a linear equation solver
148 *  Going forward, the approach can be extended e.g. to use a linear
149 *  equation solver.
145150 *
146151 *  The formal representation of the circuit will stay the same, thus scales.
147152 *
r31069r31070
191196#define NETLIB_UPDATE_TERMINALS() ATTR_HOT ATTR_ALIGN inline void update_terminals(void)
192197#define NETLIB_UPDATEI() ATTR_HOT ATTR_ALIGN inline void update(void)
193198
194#define NETLIB_DEVICE_BASE(_name, _pclass, _extra, _priv)                           \
195   class _name : public _pclass                                                    \
196   {                                                                               \
197   public:                                                                         \
198      _name()                                                                     \
199      : _pclass()    { }                                                          \
200   protected:                                                                      \
201      _extra                                                                      \
202      ATTR_HOT void update();                                                     \
203      ATTR_HOT void start();                                                      \
204      ATTR_HOT void reset();                                                      \
205      _priv                                                                       \
199#define NETLIB_DEVICE_BASE(_name, _pclass, _extra, _priv)                       \
200   class _name : public _pclass                                                \
201   {                                                                           \
202   public:                                                                     \
203      _name()                                                                 \
204      : _pclass()    { }                                                      \
205   protected:                                                                  \
206      _extra                                                                  \
207      ATTR_HOT void update();                                                 \
208      ATTR_HOT void start();                                                  \
209      ATTR_HOT void reset();                                                  \
210      _priv                                                                   \
206211   }
207212
208#define NETLIB_DEVICE_DERIVED(_name, _pclass, _priv)                                \
213#define NETLIB_DEVICE_DERIVED(_name, _pclass, _priv)                            \
209214      NETLIB_DEVICE_BASE(NETLIB_NAME(_name), NETLIB_NAME(_pclass), , _priv)
210215
211#define NETLIB_DEVICE(_name, _priv)                                                 \
216#define NETLIB_DEVICE(_name, _priv)                                             \
212217      NETLIB_DEVICE_BASE(NETLIB_NAME(_name), netlist_device_t, , _priv)
213218
214#define NETLIB_SUBDEVICE(_name, _priv)                                             \
215   class NETLIB_NAME(_name) : public netlist_device_t                              \
216   {                                                                               \
217   public:                                                                         \
218      NETLIB_NAME(_name) ()                                                       \
219      : netlist_device_t()                                                        \
220         { }                                                                     \
221   /*protected:*/                                                                  \
222      ATTR_HOT void update();                                                     \
223      ATTR_HOT void start();                                                      \
224      ATTR_HOT void reset();                                                      \
225   public:                                                                         \
226      _priv                                                                       \
219#define NETLIB_SUBDEVICE(_name, _priv)                                          \
220   class NETLIB_NAME(_name) : public netlist_device_t                          \
221   {                                                                           \
222   public:                                                                     \
223      NETLIB_NAME(_name) ()                                                   \
224      : netlist_device_t()                                                    \
225         { }                                                                 \
226   /*protected:*/                                                              \
227      ATTR_HOT void update();                                                 \
228      ATTR_HOT void start();                                                  \
229      ATTR_HOT void reset();                                                  \
230   public:                                                                     \
231      _priv                                                                   \
227232   }
228233
229#define NETLIB_DEVICE_WITH_PARAMS(_name, _priv)                                     \
230      NETLIB_DEVICE_BASE(NETLIB_NAME(_name), netlist_device_t,                    \
231         ATTR_HOT void update_param();                                           \
234#define NETLIB_DEVICE_WITH_PARAMS(_name, _priv)                                 \
235      NETLIB_DEVICE_BASE(NETLIB_NAME(_name), netlist_device_t,                \
236         ATTR_HOT void update_param();                                       \
232237      , _priv)
233238
234#define NETLIB_DEVICE_WITH_PARAMS_DERIVED(_name, _pclass, _priv)                    \
235      NETLIB_DEVICE_BASE(NETLIB_NAME(_name), NETLIB_NAME(_pclass),                \
236         ATTR_HOT void update_param();                                           \
239#define NETLIB_DEVICE_WITH_PARAMS_DERIVED(_name, _pclass, _priv)                \
240      NETLIB_DEVICE_BASE(NETLIB_NAME(_name), NETLIB_NAME(_pclass),            \
241         ATTR_HOT void update_param();                                       \
237242      , _priv)
238243
239// ----------------------------------------------------------------------------------------
244#define NETLIB_LOGIC_FAMILY(_fam)                                               \
245ATTR_COLD virtual const netlist_logic_family_desc_t *logic_family()             \
246{                                                                               \
247    return &netlist_family_ ## _fam;                                            \
248}
249
250
251
252// -----------------------------------------------------------------------------
240253// forward definitions
241// ----------------------------------------------------------------------------------------
254// -----------------------------------------------------------------------------
242255
243256class netlist_net_t;
244257class netlist_analog_net_t;
r31069r31070
253266class NETLIB_NAME(mainclock);
254267class NETLIB_NAME(base_d_to_a_proxy);
255268
256// ----------------------------------------------------------------------------------------
269// -----------------------------------------------------------------------------
257270// netlist_output_family_t
258// ----------------------------------------------------------------------------------------
271// -----------------------------------------------------------------------------
259272
260273struct netlist_logic_family_desc_t
261274{
r31069r31070
274287 * Only devices of type GENERIC should have a family description entry
275288 */
276289
277extern netlist_logic_family_desc_t netlist_family_ttl;
290extern netlist_logic_family_desc_t netlist_family_TTL;
291extern netlist_logic_family_desc_t netlist_family_CD4000;
278292
279293
280// ----------------------------------------------------------------------------------------
294// -----------------------------------------------------------------------------
281295// netlist_state_t
282// ----------------------------------------------------------------------------------------
296// -----------------------------------------------------------------------------
283297
284298template< typename X>
285299class netlist_state_t {
r31069r31070
294308  X m_x;
295309};
296310
297// ----------------------------------------------------------------------------------------
311// -----------------------------------------------------------------------------
298312// netlist_object_t
299// ----------------------------------------------------------------------------------------
313// -----------------------------------------------------------------------------
300314
301315class netlist_object_t
302316{
r31069r31070
339353   ATTR_COLD const pstring &name() const;
340354
341355   PSTATE_INTERFACE_DECL()
342   template<typename C> ATTR_COLD void save(netlist_state_t<C> &state, const pstring &stname)
356   template<typename C> ATTR_COLD void save(netlist_state_t<C> &state,
357           const pstring &stname)
343358   {
344359       save(state.ref(), stname);
345360   }
r31069r31070
371386   netlist_base_t * RESTRICT m_netlist;
372387};
373388
374// ----------------------------------------------------------------------------------------
389// -----------------------------------------------------------------------------
375390// netlist_owned_object_t
376// ----------------------------------------------------------------------------------------
391// -----------------------------------------------------------------------------
377392
378393class netlist_owned_object_t : public netlist_object_t
379394{
r31069r31070
388403   netlist_core_device_t * RESTRICT m_netdev;
389404};
390405
391// ----------------------------------------------------------------------------------------
406// -----------------------------------------------------------------------------
392407// netlist_core_terminal_t
393// ----------------------------------------------------------------------------------------
408// -----------------------------------------------------------------------------
394409
395410class netlist_core_terminal_t : public netlist_owned_object_t, public plinkedlist_element_t<netlist_core_terminal_t>
396411{
r31069r31070
430445      m_state = astate;
431446   }
432447
433   const netlist_logic_family_desc_t *m_family_desc;
448   const netlist_logic_family_desc_t *m_logic_family;
434449
435450protected:
436451   ATTR_COLD virtual void save_register()
r31069r31070
499514};
500515
501516
502// ----------------------------------------------------------------------------------------
517// -----------------------------------------------------------------------------
503518// netlist_input_t
504// ----------------------------------------------------------------------------------------
519// -----------------------------------------------------------------------------
505520
506521class netlist_input_t : public netlist_core_terminal_t
507522{
r31069r31070
527542private:
528543};
529544
530// ----------------------------------------------------------------------------------------
545// -----------------------------------------------------------------------------
531546// netlist_logic_input_t
532// ----------------------------------------------------------------------------------------
547// -----------------------------------------------------------------------------
533548
534549class netlist_logic_input_t : public netlist_input_t
535550{
r31069r31070
547562
548563};
549564
550// ----------------------------------------------------------------------------------------
565// -----------------------------------------------------------------------------
551566// netlist_ttl_input_t
552// ----------------------------------------------------------------------------------------
567// -----------------------------------------------------------------------------
553568
554569class netlist_ttl_input_t : public netlist_logic_input_t
555570{
r31069r31070
558573      : netlist_logic_input_t() { }
559574};
560575
561// ----------------------------------------------------------------------------------------
576// -----------------------------------------------------------------------------
562577// netlist_analog_input_t
563// ----------------------------------------------------------------------------------------
578// -----------------------------------------------------------------------------
564579
565580class netlist_analog_input_t : public netlist_input_t
566581{
r31069r31070
573588
574589//#define INPVAL(_x) (_x).Q()
575590
576// ----------------------------------------------------------------------------------------
591// -----------------------------------------------------------------------------
577592// net_net_t
578// ----------------------------------------------------------------------------------------
593// -----------------------------------------------------------------------------
579594
580595class netlist_net_t : public netlist_object_t
581596{
r31069r31070
753768    netlist_matrix_solver_t *m_solver;
754769};
755770
756// ----------------------------------------------------------------------------------------
771// -----------------------------------------------------------------------------
757772// net_output_t
758// ----------------------------------------------------------------------------------------
773// -----------------------------------------------------------------------------
759774
760775class netlist_output_t : public netlist_core_terminal_t
761776{
r31069r31070
823838    netlist_analog_net_t m_my_net;
824839};
825840
826// ----------------------------------------------------------------------------------------
841// -----------------------------------------------------------------------------
827842// net_param_t
828// ----------------------------------------------------------------------------------------
843// -----------------------------------------------------------------------------
829844
830845class netlist_param_t : public netlist_owned_object_t
831846{
r31069r31070
935950   pstring m_param;
936951};
937952
938// ----------------------------------------------------------------------------------------
953// -----------------------------------------------------------------------------
939954// net_device_t
940// ----------------------------------------------------------------------------------------
955// -----------------------------------------------------------------------------
941956
942957class netlist_core_device_t : public netlist_object_t
943958{
r31069r31070
946961
947962   typedef plinearlist_t<netlist_core_device_t *> list_t;
948963
949   ATTR_COLD netlist_core_device_t(const family_t afamily, const netlist_logic_family_desc_t *family_desc);
964   ATTR_COLD netlist_core_device_t(const family_t afamily);
950965
951966   ATTR_COLD virtual ~netlist_core_device_t();
952967
r31069r31070
10071022   net_update_delegate static_update;
10081023#endif
10091024
1010   const netlist_logic_family_desc_t *m_family_desc;
1011
10121025protected:
10131026
10141027   ATTR_HOT virtual void update() { }
10151028   ATTR_COLD virtual void start() { }
1029   ATTR_COLD virtual const netlist_logic_family_desc_t *logic_family()
1030   {
1031       return &netlist_family_TTL;
1032   }
10161033
10171034private:
10181035};
r31069r31070
10551072};
10561073
10571074
1058// ----------------------------------------------------------------------------------------
1075// -----------------------------------------------------------------------------
10591076// netlist_queue_t
1060// ----------------------------------------------------------------------------------------
1077// -----------------------------------------------------------------------------
10611078
10621079class netlist_queue_t : public netlist_timed_queue<netlist_net_t *, netlist_time, 512>,
10631080                        public netlist_object_t,
r31069r31070
10801097   char m_name[512][64];
10811098};
10821099
1083// ----------------------------------------------------------------------------------------
1100// -----------------------------------------------------------------------------
10841101// netlist_base_t
1085// ----------------------------------------------------------------------------------------
1102// -----------------------------------------------------------------------------
10861103
10871104
10881105class netlist_base_t : public netlist_object_t, public pstate_manager_t
r31069r31070
12101227   netlist_setup_t *m_setup;
12111228};
12121229
1213// ----------------------------------------------------------------------------------------
1230// -----------------------------------------------------------------------------
12141231// Inline implementations
1215// ----------------------------------------------------------------------------------------
1232// -----------------------------------------------------------------------------
12161233
12171234PSTATE_INTERFACE(netlist_object_t, m_netlist, name())
12181235
r31069r31070
13511368}
13521369
13531370
1354// ----------------------------------------------------------------------------------------
1371// -----------------------------------------------------------------------------
13551372// net_dev class factory
1356// ----------------------------------------------------------------------------------------
1373// -----------------------------------------------------------------------------
13571374
13581375class net_device_t_base_factory
13591376{

Previous 199869 Revisions Next


© 1997-2024 The MAME Team