| Previous | 199869 Revisions | Next |
| r31040 Thursday 19th June, 2014 at 15:21:32 UTC by Couriersud |
|---|
| Removed a number of "uninitialized member" warnings by using a template wrapper around those members. |
| [src/emu/netlist] | nl_base.h |
| [src/emu/netlist/devices] | nld_4066.c nld_4066.h nld_74107.h nld_74123.h nld_74153.h nld_7448.h nld_7474.h nld_7483.h nld_7490.h nld_7493.h nld_74ls629.h nld_9316.c nld_9316.h nld_log.h nld_ne555.h |
| r31039 | r31040 | |
|---|---|---|
| 28 | 28 | ~NETLIB_NAME(log)(); |
| 29 | 29 | netlist_analog_input_t m_I; |
| 30 | 30 | protected: |
| 31 | ||
| 31 | netlist_state_t<FILE *> m_file; | |
| 32 | 32 | ); |
| 33 | 33 | |
| 34 | 34 | #define LOGD(_name, _I, _I2) \ |
| r31039 | r31040 | |
|---|---|---|
| 66 | 66 | |
| 67 | 67 | netlist_ttl_output_t m_Y; |
| 68 | 68 | |
| 69 | int m_chan; | |
| 69 | netlist_state_t<int> m_chan; | |
| 70 | 70 | ); |
| 71 | 71 | |
| 72 | 72 | NETLIB_DEVICE(74153, |
| r31039 | r31040 | |
|---|---|---|
| 37 | 37 | netlist_analog_input_t m_TRIG; |
| 38 | 38 | netlist_analog_output_t m_OUT; |
| 39 | 39 | |
| 40 | bool m_last_out; | |
| 40 | netlist_state_t<bool> m_last_out; | |
| 41 | 41 | |
| 42 | 42 | inline double clamp(const double v, const double a, const double b); |
| 43 | 43 |
| r31039 | r31040 | |
|---|---|---|
| 55 | 55 | netlist_ttl_input_t m_B3; |
| 56 | 56 | netlist_ttl_input_t m_B4; |
| 57 | 57 | |
| 58 | UINT8 m_lastr; | |
| 58 | netlist_state_t<UINT8> m_lastr; | |
| 59 | 59 | |
| 60 | 60 | netlist_ttl_output_t m_S1; |
| 61 | 61 | netlist_ttl_output_t m_S2; |
| r31039 | r31040 | |
|---|---|---|
| 49 | 49 | netlist_ttl_input_t m_D; |
| 50 | 50 | netlist_ttl_input_t m_RBIQ; |
| 51 | 51 | |
| 52 | UINT8 m_state; | |
| 52 | netlist_state_t<UINT8> m_state; | |
| 53 | 53 | |
| 54 | 54 | netlist_ttl_output_t m_a; |
| 55 | 55 | netlist_ttl_output_t m_b; |
| r31039 | r31040 | |
|---|---|---|
| 43 | 43 | |
| 44 | 44 | netlist_analog_input_t m_CV; |
| 45 | 45 | |
| 46 | netlist_sig_t m_last_trig; | |
| 47 | UINT8 m_state; | |
| 48 | double m_KP; | |
| 46 | netlist_state_t<netlist_sig_t> m_last_trig; | |
| 47 | netlist_state_t<UINT8> m_state; | |
| 48 | netlist_state_t<double> m_KP; | |
| 49 | 49 | |
| 50 | 50 | netlist_param_double_t m_K; |
| 51 | 51 | netlist_param_double_t m_RI; |
| r31039 | r31040 | |
|---|---|---|
| 80 | 80 | netlist_ttl_output_t m_Q; |
| 81 | 81 | netlist_ttl_output_t m_QQ; |
| 82 | 82 | |
| 83 | netlist_sig_t m_Q1; | |
| 84 | netlist_sig_t m_Q2; | |
| 85 | netlist_sig_t m_F; | |
| 83 | netlist_state_t<netlist_sig_t> m_Q1; | |
| 84 | netlist_state_t<netlist_sig_t> m_Q2; | |
| 85 | netlist_state_t<netlist_sig_t> m_F; | |
| 86 | 86 | |
| 87 | 87 | ATTR_HOT void newstate(const netlist_sig_t state); |
| 88 | 88 |
| r31039 | r31040 | |
|---|---|---|
| 30 | 30 | |
| 31 | 31 | NETLIB_UPDATE(4066) |
| 32 | 32 | { |
| 33 | double sup = (m_supply->vdd() - m_supply->vss()); | |
| 33 | double sup = (m_supply.get()->vdd() - m_supply.get()->vss()); | |
| 34 | 34 | double low = 0.45 * sup; |
| 35 | 35 | double high = 0.55 * sup; |
| 36 | double in = INPANALOG(m_control) - m_supply->vss(); | |
| 36 | double in = INPANALOG(m_control) - m_supply.get()->vss(); | |
| 37 | 37 | double rON = 270.0 * 5.0 / sup; |
| 38 | 38 | |
| 39 | 39 | if (in < low) |
| r31039 | r31040 | |
|---|---|---|
| 40 | 40 | netlist_logic_output_t m_Y; |
| 41 | 41 | |
| 42 | 42 | netlist_time m_inc; |
| 43 | netlist_sig_t m_enableq; | |
| 43 | netlist_state_t<netlist_sig_t> m_enableq; | |
| 44 | 44 | ); |
| 45 | 45 | |
| 46 | 46 | NETLIB_DEVICE_WITH_PARAMS(SN74LS629, |
| r31039 | r31040 | |
|---|---|---|
| 73 | 73 | register_output("QD", m_QD); |
| 74 | 74 | register_output("RC", m_RC); |
| 75 | 75 | |
| 76 | save(NAME(m_cnt)); | |
| 77 | save(NAME(m_loadq)); | |
| 78 | save(NAME(m_ent)); | |
| 76 | save(NAME(m_cnt.ref())); | |
| 77 | save(NAME(m_loadq.ref())); | |
| 78 | save(NAME(m_ent.ref())); | |
| 79 | 79 | } |
| 80 | 80 | |
| 81 | 81 | NETLIB_RESET(9316_sub) |
| r31039 | r31040 | |
| 103 | 103 | } |
| 104 | 104 | else |
| 105 | 105 | { |
| 106 | cnt = m_ABCD->read_ABCD(); | |
| 106 | cnt = m_ABCD.get()->read_ABCD(); | |
| 107 | 107 | update_outputs_all(cnt); |
| 108 | 108 | OUTLOGIC(m_RC, m_ent & (cnt == 0x0f), NLTIME_FROM_NS(20)); |
| 109 | 109 | } |
| r31039 | r31040 | |
|---|---|---|
| 45 | 45 | netlist_analog_input_t m_control; |
| 46 | 46 | NETLIB_NAME(R) m_R; |
| 47 | 47 | |
| 48 | NETLIB_NAME(vdd_vss) *m_supply; | |
| 48 | netlist_state_t<NETLIB_NAME(vdd_vss) *>m_supply; | |
| 49 | 49 | ); |
| 50 | 50 | |
| 51 | 51 | NETLIB_DEVICE(4066_dip, |
| r31039 | r31040 | |
|---|---|---|
| 81 | 81 | |
| 82 | 82 | netlist_ttl_input_t m_CLK; |
| 83 | 83 | |
| 84 | UINT8 m_cnt; | |
| 85 | NETLIB_NAME(9316_subABCD) *m_ABCD; | |
| 86 | netlist_sig_t m_loadq; | |
| 87 | netlist_sig_t m_ent; | |
| 84 | netlist_state_t<UINT8> m_cnt; | |
| 85 | netlist_state_t<NETLIB_NAME(9316_subABCD) *> m_ABCD; | |
| 86 | netlist_state_t<netlist_sig_t> m_loadq; | |
| 87 | netlist_state_t<netlist_sig_t> m_ent; | |
| 88 | 88 | |
| 89 | 89 | netlist_ttl_output_t m_QA; |
| 90 | 90 | netlist_ttl_output_t m_QB; |
| r31039 | r31040 | |
|---|---|---|
| 80 | 80 | netlist_ttl_input_t m_A; |
| 81 | 81 | netlist_ttl_input_t m_B; |
| 82 | 82 | |
| 83 | UINT8 m_cnt; | |
| 83 | netlist_state_t<UINT8> m_cnt; | |
| 84 | 84 | |
| 85 | 85 | netlist_ttl_output_t m_Q[4]; |
| 86 | 86 | ); |
| r31039 | r31040 | |
|---|---|---|
| 57 | 57 | NETLIB_SUBDEVICE(7474sub, |
| 58 | 58 | netlist_ttl_input_t m_CLK; |
| 59 | 59 | |
| 60 | ||
| 60 | netlist_state_t<UINT8> m_nextD; | |
| 61 | 61 | netlist_ttl_output_t m_Q; |
| 62 | 62 | netlist_ttl_output_t m_QQ; |
| 63 | 63 |
| r31039 | r31040 | |
|---|---|---|
| 73 | 73 | netlist_ttl_input_t m_I; |
| 74 | 74 | netlist_ttl_output_t m_Q; |
| 75 | 75 | |
| 76 | UINT8 m_reset; | |
| 76 | netlist_state_t<UINT8> m_reset; | |
| 77 | 77 | ); |
| 78 | 78 | |
| 79 | 79 | NETLIB_DEVICE(7493, |
| r31039 | r31040 | |
|---|---|---|
| 276 | 276 | |
| 277 | 277 | extern netlist_logic_family_desc_t netlist_family_ttl; |
| 278 | 278 | |
| 279 | ||
| 279 | 280 | // ---------------------------------------------------------------------------------------- |
| 281 | // netlist_state_t | |
| 282 | // ---------------------------------------------------------------------------------------- | |
| 283 | ||
| 284 | template< typename X> | |
| 285 | class netlist_state_t { | |
| 286 | public: | |
| 287 | inline netlist_state_t() : m_x(static_cast<X>(0)) {} | |
| 288 | inline netlist_state_t(const X& x_) : m_x(x_) {} | |
| 289 | inline const X& get() const { return m_x; } | |
| 290 | inline X& ref() { return m_x; } | |
| 291 | inline operator const X&() const { return m_x; } | |
| 292 | inline operator X&() { return m_x; } | |
| 293 | private: | |
| 294 | X m_x; | |
| 295 | }; | |
| 296 | ||
| 297 | // ---------------------------------------------------------------------------------------- | |
| 280 | 298 | // netlist_object_t |
| 281 | 299 | // ---------------------------------------------------------------------------------------- |
| 282 | 300 | |
| r31039 | r31040 | |
| 321 | 339 | ATTR_COLD const pstring &name() const; |
| 322 | 340 | |
| 323 | 341 | PSTATE_INTERFACE_DECL() |
| 342 | template<typename C> ATTR_COLD void save(netlist_state_t<C> &state, const pstring &stname) | |
| 343 | { | |
| 344 | save(state.ref(), stname); | |
| 345 | } | |
| 324 | 346 | |
| 325 | 347 | ATTR_HOT inline const type_t type() const { return m_objtype; } |
| 326 | 348 | ATTR_HOT inline const family_t family() const { return m_family; } |
| Previous | 199869 Revisions | Next |