diff options
Diffstat (limited to 'src/emu/netlist/devices/nld_system.h')
-rw-r--r-- | src/emu/netlist/devices/nld_system.h | 256 |
1 files changed, 128 insertions, 128 deletions
diff --git a/src/emu/netlist/devices/nld_system.h b/src/emu/netlist/devices/nld_system.h index ca5f9b70316..2c214ed352a 100644 --- a/src/emu/netlist/devices/nld_system.h +++ b/src/emu/netlist/devices/nld_system.h @@ -27,14 +27,14 @@ #define MAINCLOCK(_name, _freq) \ NET_REGISTER_DEV(mainclock, _name) \ - PARAM(_name.FREQ, _freq) + PARAM(_name.FREQ, _freq) #define CLOCK(_name, _freq) \ NET_REGISTER_DEV(clock, _name) \ - PARAM(_name.FREQ, _freq) + PARAM(_name.FREQ, _freq) #define GNDA() \ - NET_REGISTER_DEV(gnd, GND) + NET_REGISTER_DEV(gnd, GND) // ---------------------------------------------------------------------------------------- // mainclock @@ -47,7 +47,7 @@ public: netlist_param_double_t m_freq; netlist_time m_inc; - ATTR_HOT inline static void mc_update(netlist_net_t &net); + ATTR_HOT inline static void mc_update(netlist_net_t &net); ); // ---------------------------------------------------------------------------------------- @@ -76,7 +76,7 @@ NETLIB_DEVICE_WITH_PARAMS(ttl_input, NETLIB_DEVICE_WITH_PARAMS(analog_input, netlist_analog_output_t m_Q; - netlist_param_double_t m_IN; + netlist_param_double_t m_IN; ); // ---------------------------------------------------------------------------------------- @@ -86,29 +86,29 @@ NETLIB_DEVICE_WITH_PARAMS(analog_input, class nld_gnd : public netlist_device_t { public: - ATTR_COLD nld_gnd() - : netlist_device_t(GND) { } + ATTR_COLD nld_gnd() + : netlist_device_t(GND) { } - ATTR_COLD virtual ~nld_gnd() {} + ATTR_COLD virtual ~nld_gnd() {} protected: - ATTR_COLD void start() - { - register_output("Q", m_Q); - } + ATTR_COLD void start() + { + register_output("Q", m_Q); + } - ATTR_COLD void reset() - { - } + ATTR_COLD void reset() + { + } - ATTR_HOT ATTR_ALIGN void update() - { - OUTANALOG(m_Q, 0.0, NLTIME_IMMEDIATE); - } + ATTR_HOT ATTR_ALIGN void update() + { + OUTANALOG(m_Q, 0.0, NLTIME_IMMEDIATE); + } private: - netlist_analog_output_t m_Q; + netlist_analog_output_t m_Q; }; @@ -120,38 +120,38 @@ private: class nld_a_to_d_proxy : public netlist_device_t { public: - ATTR_COLD nld_a_to_d_proxy(netlist_input_t &in_proxied) - : netlist_device_t() - { - assert(in_proxied.family() == LOGIC); - m_I.m_family_desc = in_proxied.m_family_desc; - } + ATTR_COLD nld_a_to_d_proxy(netlist_input_t &in_proxied) + : netlist_device_t() + { + assert(in_proxied.family() == LOGIC); + m_I.m_family_desc = in_proxied.m_family_desc; + } - ATTR_COLD virtual ~nld_a_to_d_proxy() {} + ATTR_COLD virtual ~nld_a_to_d_proxy() {} - netlist_analog_input_t m_I; - netlist_ttl_output_t m_Q; + netlist_analog_input_t m_I; + netlist_ttl_output_t m_Q; protected: - ATTR_COLD void start() - { - register_input("I", m_I); - register_output("Q", m_Q); - } - - ATTR_COLD void reset() - { - } - - ATTR_HOT ATTR_ALIGN void update() - { - if (m_I.Q_Analog() > m_I.m_family_desc->m_high_thresh_V) - OUTLOGIC(m_Q, 1, NLTIME_FROM_NS(1)); - else if (m_I.Q_Analog() < m_I.m_family_desc->m_low_thresh_V) - OUTLOGIC(m_Q, 0, NLTIME_FROM_NS(1)); - //else - // OUTLOGIC(m_Q, m_Q.net().last_Q(), NLTIME_FROM_NS(1)); - } + ATTR_COLD void start() + { + register_input("I", m_I); + register_output("Q", m_Q); + } + + ATTR_COLD void reset() + { + } + + ATTR_HOT ATTR_ALIGN void update() + { + if (m_I.Q_Analog() > m_I.m_family_desc->m_high_thresh_V) + OUTLOGIC(m_Q, 1, NLTIME_FROM_NS(1)); + else if (m_I.Q_Analog() < m_I.m_family_desc->m_low_thresh_V) + OUTLOGIC(m_Q, 0, NLTIME_FROM_NS(1)); + //else + // OUTLOGIC(m_Q, m_Q.net().last_Q(), NLTIME_FROM_NS(1)); + } }; @@ -162,24 +162,24 @@ protected: class nld_base_d_to_a_proxy : public netlist_device_t { public: - ATTR_COLD nld_base_d_to_a_proxy(netlist_output_t &out_proxied) - : netlist_device_t() - { - assert(out_proxied.family() == LOGIC); - m_family_desc = out_proxied.m_family_desc; - } + ATTR_COLD nld_base_d_to_a_proxy(netlist_output_t &out_proxied) + : netlist_device_t() + { + assert(out_proxied.family() == LOGIC); + m_family_desc = out_proxied.m_family_desc; + } - ATTR_COLD virtual ~nld_base_d_to_a_proxy() {} + ATTR_COLD virtual ~nld_base_d_to_a_proxy() {} - ATTR_COLD virtual netlist_core_terminal_t &out() = 0; + ATTR_COLD virtual netlist_core_terminal_t &out() = 0; - netlist_ttl_input_t m_I; + netlist_ttl_input_t m_I; protected: - ATTR_COLD void start() - { - register_input("I", m_I); - } + ATTR_COLD void start() + { + register_input("I", m_I); + } private: }; @@ -188,88 +188,88 @@ private: class nld_d_to_a_proxy : public nld_base_d_to_a_proxy { public: - ATTR_COLD nld_d_to_a_proxy(netlist_output_t &out_proxied) - : nld_base_d_to_a_proxy(out_proxied) - { - } + ATTR_COLD nld_d_to_a_proxy(netlist_output_t &out_proxied) + : nld_base_d_to_a_proxy(out_proxied) + { + } - ATTR_COLD virtual ~nld_d_to_a_proxy() {} + ATTR_COLD virtual ~nld_d_to_a_proxy() {} protected: - ATTR_COLD void start() - { - nld_base_d_to_a_proxy::start(); - register_output("Q", m_Q); - } - - ATTR_COLD void reset() - { - //m_Q.initial(0); - } - - ATTR_COLD virtual netlist_core_terminal_t &out() - { - return m_Q; - } - - ATTR_HOT ATTR_ALIGN void update() - { - OUTANALOG(m_Q, INPLOGIC(m_I) ? m_family_desc->m_high_V : m_family_desc->m_low_V, NLTIME_FROM_NS(1)); - } + ATTR_COLD void start() + { + nld_base_d_to_a_proxy::start(); + register_output("Q", m_Q); + } + + ATTR_COLD void reset() + { + //m_Q.initial(0); + } + + ATTR_COLD virtual netlist_core_terminal_t &out() + { + return m_Q; + } + + ATTR_HOT ATTR_ALIGN void update() + { + OUTANALOG(m_Q, INPLOGIC(m_I) ? m_family_desc->m_high_V : m_family_desc->m_low_V, NLTIME_FROM_NS(1)); + } private: - netlist_analog_output_t m_Q; + netlist_analog_output_t m_Q; }; #else class nld_d_to_a_proxy : public nld_base_d_to_a_proxy { public: - ATTR_COLD nld_d_to_a_proxy(netlist_output_t &out_proxied) - : nld_base_d_to_a_proxy(out_proxied) - { - } + ATTR_COLD nld_d_to_a_proxy(netlist_output_t &out_proxied) + : nld_base_d_to_a_proxy(out_proxied) + { + } - ATTR_COLD virtual ~nld_d_to_a_proxy() {} + ATTR_COLD virtual ~nld_d_to_a_proxy() {} protected: - ATTR_COLD void start() - { - nld_base_d_to_a_proxy::start(); - - register_sub(m_R, "R"); - register_output("_Q", m_Q); - register_subalias("Q", m_R.m_N); - - connect(m_R.m_P, m_Q); - - //m_Q.initial(m_family_desc->m_low_V); - //m_R.set_R(m_family_desc->m_R_low); - } - - ATTR_COLD void reset() - { - //m_Q.initial(m_family_desc->m_low_V); - //m_R.set_R(m_family_desc->m_R_low); - m_R.do_reset(); - } - - ATTR_COLD virtual netlist_core_terminal_t &out() - { - return m_R.m_N; - } - - ATTR_HOT ATTR_ALIGN void update() - { - double R = INPLOGIC(m_I) ? m_family_desc->m_R_high : m_family_desc->m_R_low; - double V = INPLOGIC(m_I) ? m_family_desc->m_high_V : m_family_desc->m_low_V; - //printf("%f %f\n", R, V); - m_R.set_R(R); - OUTANALOG(m_Q, V, NLTIME_FROM_NS(0)); - } + ATTR_COLD void start() + { + nld_base_d_to_a_proxy::start(); + + register_sub(m_R, "R"); + register_output("_Q", m_Q); + register_subalias("Q", m_R.m_N); + + connect(m_R.m_P, m_Q); + + //m_Q.initial(m_family_desc->m_low_V); + //m_R.set_R(m_family_desc->m_R_low); + } + + ATTR_COLD void reset() + { + //m_Q.initial(m_family_desc->m_low_V); + //m_R.set_R(m_family_desc->m_R_low); + m_R.do_reset(); + } + + ATTR_COLD virtual netlist_core_terminal_t &out() + { + return m_R.m_N; + } + + ATTR_HOT ATTR_ALIGN void update() + { + double R = INPLOGIC(m_I) ? m_family_desc->m_R_high : m_family_desc->m_R_low; + double V = INPLOGIC(m_I) ? m_family_desc->m_high_V : m_family_desc->m_low_V; + //printf("%f %f\n", R, V); + m_R.set_R(R); + OUTANALOG(m_Q, V, NLTIME_FROM_NS(0)); + } private: - netlist_analog_output_t m_Q; - nld_R_base m_R; + netlist_analog_output_t m_Q; + nld_R_base m_R; }; #endif |