mirror of
https://github.com/holub/mame
synced 2025-04-19 15:11:37 +03:00
Code cleanup. Removed some outdated comments. (nw)
This commit is contained in:
parent
86965e7757
commit
80f3ade48b
@ -15,6 +15,7 @@ namespace netlist
|
||||
|
||||
/*
|
||||
* FIXME: Using truthtable is a lot slower than the explicit device
|
||||
* in breakout. Performance drops by 20%.
|
||||
*/
|
||||
|
||||
#define USE_TRUTHTABLE_7448 (0)
|
||||
@ -62,8 +63,6 @@ namespace netlist
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
NETLIB_OBJECT_DERIVED(7448_dip, 7448)
|
||||
{
|
||||
NETLIB_CONSTRUCTOR_DERIVED(7448_dip, 7448)
|
||||
@ -85,6 +84,8 @@ namespace netlist
|
||||
register_subalias("15", m_Q[5]); // f
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
#if (USE_TRUTHTABLE_7448 && USE_TRUTHTABLE)
|
||||
nld_7448::truthtable_t nld_7448::m_ttbl;
|
||||
@ -108,7 +109,7 @@ namespace netlist
|
||||
" 1, 1, X, 0, 1, 1, 1 | 0, 0, 0, 1, 1, 1, 1|100,100,100,100,100,100,100",
|
||||
" 1, 1, X, 1, 1, 1, 1 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100",
|
||||
|
||||
// BI/RBO is input output. In the next case it is used as an output will go low.
|
||||
// BI/RBO is input output. In the next case it is used as an input will go low.
|
||||
" 1, 1, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100", // RBI
|
||||
|
||||
" 0, 1, X, X, X, X, X | 1, 1, 1, 1, 1, 1, 1|100,100,100,100,100,100,100", // LT
|
||||
@ -118,26 +119,27 @@ namespace netlist
|
||||
""
|
||||
};
|
||||
|
||||
NETLIB_START(7448_dip)
|
||||
NETLIB_OBJECT_DERIVED(7448_dip, 7448)
|
||||
{
|
||||
NETLIB_NAME(7448)::start();
|
||||
NETLIB_CONSTRUCTOR_DERIVED(7448_dip, 7448)
|
||||
{
|
||||
register_subalias("1", m_I[4]); // B
|
||||
register_subalias("2", m_I[5]); // C
|
||||
register_subalias("3", m_I[0]); // LTQ
|
||||
register_subalias("4", m_I[1]); // BIQ
|
||||
register_subalias("5", m_I[2]); // RBIQ
|
||||
register_subalias("6", m_I[6]); // D
|
||||
register_subalias("7", m_I[3]); // A
|
||||
|
||||
register_subalias("1", m_I[4]); // B
|
||||
register_subalias("2", m_I[5]); // C
|
||||
register_subalias("3", m_I[0]); // LTQ
|
||||
register_subalias("4", m_I[1]); // BIQ
|
||||
register_subalias("5", m_I[2]); // RBIQ
|
||||
register_subalias("6", m_I[6]); // D
|
||||
register_subalias("7", m_I[3]); // A
|
||||
|
||||
register_subalias("9", m_Q[4]); // e
|
||||
register_subalias("10", m_Q[3]); // d
|
||||
register_subalias("11", m_Q[2]); // c
|
||||
register_subalias("12", m_Q[1]); // b
|
||||
register_subalias("13", m_Q[0]); // a
|
||||
register_subalias("14", m_Q[6]); // g
|
||||
register_subalias("15", m_Q[5]); // f
|
||||
}
|
||||
register_subalias("9", m_Q[4]); // e
|
||||
register_subalias("10", m_Q[3]); // d
|
||||
register_subalias("11", m_Q[2]); // c
|
||||
register_subalias("12", m_Q[1]); // b
|
||||
register_subalias("13", m_Q[0]); // a
|
||||
register_subalias("14", m_Q[6]); // g
|
||||
register_subalias("15", m_Q[5]); // f
|
||||
}
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
|
@ -57,8 +57,7 @@ namespace netlist
|
||||
|
||||
NETLIB_RESET(logic_input)
|
||||
{
|
||||
//FIXME: causes issues in breakout (lots of pings after first player 1 start)
|
||||
//m_Q.initial(m_IN.Value() & 1);
|
||||
m_Q.initial(0);
|
||||
}
|
||||
|
||||
NETLIB_UPDATE(logic_input)
|
||||
@ -76,7 +75,7 @@ namespace netlist
|
||||
|
||||
NETLIB_RESET(analog_input)
|
||||
{
|
||||
// m_Q.initial(m_IN.Value() * 0.999);
|
||||
m_Q.initial(0.0);
|
||||
}
|
||||
|
||||
NETLIB_UPDATE(analog_input)
|
||||
|
@ -540,7 +540,7 @@ namespace netlist
|
||||
NETLIB_UPDATEI();
|
||||
|
||||
private:
|
||||
analog_output_t m_GNDHack; // FIXME: LOng term, we need to connect proxy gnd to device gnd
|
||||
analog_output_t m_GNDHack; // FIXME: Long term, we need to connect proxy gnd to device gnd
|
||||
NETLIB_SUB(twoterm) m_RV;
|
||||
int m_last_state;
|
||||
bool m_is_timestep;
|
||||
|
@ -66,7 +66,6 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
//FIXME: set to proper values
|
||||
class logic_family_cd4xxx_t : public logic_family_desc_t
|
||||
{
|
||||
public:
|
||||
@ -507,7 +506,7 @@ void device_t::register_subalias(const pstring &name, core_terminal_t &term)
|
||||
// everything already fully qualified
|
||||
setup().register_alias_nofqn(alias, term.name());
|
||||
|
||||
if (term.isType(terminal_t::INPUT) || term.isType(terminal_t::TERMINAL))
|
||||
if (term.is_type(terminal_t::INPUT) || term.is_type(terminal_t::TERMINAL))
|
||||
m_terminals.push_back(alias);
|
||||
}
|
||||
|
||||
@ -787,7 +786,7 @@ void analog_net_t::process_net(plib::pvector_t<list_t> &groups)
|
||||
groups.back().push_back(this);
|
||||
for (core_terminal_t *p : m_core_terms)
|
||||
{
|
||||
if (p->isType(terminal_t::TERMINAL))
|
||||
if (p->is_type(terminal_t::TERMINAL))
|
||||
{
|
||||
terminal_t *pt = static_cast<terminal_t *>(p);
|
||||
analog_net_t *other_net = &pt->m_otherterm->net();
|
||||
@ -811,6 +810,14 @@ core_terminal_t::core_terminal_t(core_device_t &dev, const pstring &aname, const
|
||||
save(NLNAME(m_state));
|
||||
}
|
||||
|
||||
void core_terminal_t::reset()
|
||||
{
|
||||
if (is_type(OUTPUT))
|
||||
set_state(STATE_OUT);
|
||||
else
|
||||
set_state(STATE_INP_ACTIVE);
|
||||
}
|
||||
|
||||
void core_terminal_t::set_net(net_t::ptr_t anet)
|
||||
{
|
||||
m_net = anet;
|
||||
@ -854,15 +861,6 @@ void terminal_t::schedule_after(const netlist_time &after)
|
||||
net().solver()->update_after(after);
|
||||
}
|
||||
|
||||
void terminal_t::reset()
|
||||
{
|
||||
set_state(STATE_INP_ACTIVE);
|
||||
set_ptr(m_Idr1, 0.0);
|
||||
set_ptr(m_go1, netlist().gmin());
|
||||
set_ptr(m_gt1, netlist().gmin());
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// net_input_t
|
||||
// ----------------------------------------------------------------------------------------
|
||||
@ -906,7 +904,8 @@ analog_input_t::analog_input_t(core_device_t &dev, const pstring &aname)
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
analog_output_t::analog_output_t(core_device_t &dev, const pstring &aname)
|
||||
: analog_t(dev, aname, OUTPUT), m_proxied_net(nullptr)
|
||||
: analog_t(dev, aname, OUTPUT)
|
||||
, m_proxied_net(nullptr)
|
||||
, m_my_net(dev.netlist(), name() + ".net", this)
|
||||
{
|
||||
this->set_net(&m_my_net);
|
||||
|
@ -206,7 +206,7 @@ class NETLIB_NAME(name) : public device_t
|
||||
: device_t(owner, name)
|
||||
|
||||
#define NETLIB_DYNAMIC() \
|
||||
public: virtual bool is_dynamic1() const override { return true; }
|
||||
public: virtual bool is_dynamic() const override { return true; }
|
||||
|
||||
#define NETLIB_TIMESTEP() \
|
||||
public: virtual bool is_timestep() const override { return true; } \
|
||||
@ -367,7 +367,7 @@ namespace netlist
|
||||
plib::pstate_manager_t &state_manager();
|
||||
|
||||
type_t type() const { return m_objtype; }
|
||||
bool isType(const type_t atype) const { return (m_objtype == atype); }
|
||||
bool is_type(const type_t atype) const { return (m_objtype == atype); }
|
||||
|
||||
netlist_t & netlist() { return m_netlist; }
|
||||
const netlist_t & netlist() const { return m_netlist; }
|
||||
@ -427,6 +427,7 @@ namespace netlist
|
||||
void set_net(net_t *anet);
|
||||
void clear_net();
|
||||
bool has_net() const { return (m_net != nullptr); }
|
||||
|
||||
const net_t & net() const { return *m_net;}
|
||||
net_t & net() { return *m_net;}
|
||||
|
||||
@ -441,8 +442,7 @@ namespace netlist
|
||||
m_state = astate;
|
||||
}
|
||||
|
||||
// FIXME: need to get rid at some point
|
||||
virtual void reset() { }
|
||||
void reset();
|
||||
|
||||
private:
|
||||
net_t * m_net;
|
||||
@ -464,10 +464,6 @@ namespace netlist
|
||||
|
||||
const analog_net_t & net() const;
|
||||
analog_net_t & net();
|
||||
|
||||
protected:
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
@ -516,8 +512,6 @@ namespace netlist
|
||||
m_Idr1 = Idr;
|
||||
}
|
||||
|
||||
protected:
|
||||
void reset() override;
|
||||
private:
|
||||
void set_ptr(nl_double *ptr, const nl_double val)
|
||||
{
|
||||
@ -531,7 +525,7 @@ namespace netlist
|
||||
nl_double *m_go1; // conductance for Voltage from other term
|
||||
nl_double *m_gt1; // conductance for total conductance
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
@ -576,12 +570,6 @@ namespace netlist
|
||||
void activate_hl();
|
||||
void activate_lh();
|
||||
|
||||
protected:
|
||||
virtual void reset() override
|
||||
{
|
||||
set_state(STATE_INP_ACTIVE);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
@ -595,11 +583,6 @@ namespace netlist
|
||||
|
||||
nl_double Q_Analog() const;
|
||||
|
||||
protected:
|
||||
virtual void reset() override
|
||||
{
|
||||
set_state(STATE_INP_ACTIVE);
|
||||
}
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
@ -611,8 +594,6 @@ namespace netlist
|
||||
P_PREVENT_COPYING(net_t)
|
||||
public:
|
||||
|
||||
friend class core_device_t; // FIXME
|
||||
|
||||
using ptr_t = net_t *;
|
||||
using list_t = plib::pvector_t<std::shared_ptr<net_t>>;
|
||||
|
||||
@ -726,6 +707,7 @@ namespace netlist
|
||||
|
||||
nl_double Q_Analog() const { return m_cur_Analog; }
|
||||
nl_double &Q_Analog_state_ptr() { return m_cur_Analog; }
|
||||
|
||||
//FIXME: needed by current solver code
|
||||
devices::matrix_solver_t *solver() { return m_solver; }
|
||||
void set_solver(devices::matrix_solver_t *solver) { m_solver = solver; }
|
||||
@ -748,16 +730,10 @@ namespace netlist
|
||||
|
||||
logic_output_t(core_device_t &dev, const pstring &aname);
|
||||
|
||||
virtual void reset() override
|
||||
{
|
||||
set_state(STATE_OUT);
|
||||
}
|
||||
|
||||
void initial(const netlist_sig_t val);
|
||||
|
||||
void set_Q(const netlist_sig_t newQ, const netlist_time delay) NOEXCEPT
|
||||
{
|
||||
//net().set_Q(newQ, delay);
|
||||
m_my_net.set_Q(newQ, delay); // take the shortcut
|
||||
}
|
||||
|
||||
@ -927,7 +903,7 @@ namespace netlist
|
||||
virtual void update_terminals() { }
|
||||
|
||||
virtual void update_param() {}
|
||||
virtual bool is_dynamic1() const { return false; }
|
||||
virtual bool is_dynamic() const { return false; }
|
||||
virtual bool is_timestep() const { return false; }
|
||||
virtual bool needs_update_after_param_change() const { return false; }
|
||||
|
||||
|
@ -246,10 +246,10 @@ void setup_t::register_and_set_param(pstring name, param_t ¶m)
|
||||
|
||||
void setup_t::register_term(core_terminal_t &term)
|
||||
{
|
||||
if (term.isType(terminal_t::OUTPUT))
|
||||
if (term.is_type(terminal_t::OUTPUT))
|
||||
{
|
||||
}
|
||||
else if (term.isType(terminal_t::INPUT))
|
||||
else if (term.is_type(terminal_t::INPUT))
|
||||
{
|
||||
static_cast<device_t &>(term.device()).m_terminals.push_back(term.name());
|
||||
}
|
||||
@ -338,7 +338,6 @@ void setup_t::register_frontier(const pstring attach, const double r_IN, const d
|
||||
|
||||
void setup_t::register_param(const pstring ¶m, const double value)
|
||||
{
|
||||
// FIXME: there should be a better way
|
||||
register_param(param, plib::pfmt("{1}").e(value,".9"));
|
||||
}
|
||||
|
||||
@ -618,7 +617,7 @@ bool setup_t::connect_input_input(core_terminal_t &t1, core_terminal_t &t2)
|
||||
{
|
||||
for (core_terminal_t *t : t1.net().m_core_terms)
|
||||
{
|
||||
if (t->isType(core_terminal_t::TERMINAL))
|
||||
if (t->is_type(core_terminal_t::TERMINAL))
|
||||
ret = connect(t2, *t);
|
||||
if (ret)
|
||||
break;
|
||||
@ -633,7 +632,7 @@ bool setup_t::connect_input_input(core_terminal_t &t1, core_terminal_t &t2)
|
||||
{
|
||||
for (core_terminal_t *t : t2.net().m_core_terms)
|
||||
{
|
||||
if (t->isType(core_terminal_t::TERMINAL))
|
||||
if (t->is_type(core_terminal_t::TERMINAL))
|
||||
ret = connect(t1, *t);
|
||||
if (ret)
|
||||
break;
|
||||
@ -652,39 +651,39 @@ bool setup_t::connect(core_terminal_t &t1_in, core_terminal_t &t2_in)
|
||||
core_terminal_t &t2 = resolve_proxy(t2_in);
|
||||
bool ret = true;
|
||||
|
||||
if (t1.isType(core_terminal_t::OUTPUT) && t2.isType(core_terminal_t::INPUT))
|
||||
if (t1.is_type(core_terminal_t::OUTPUT) && t2.is_type(core_terminal_t::INPUT))
|
||||
{
|
||||
if (t2.has_net() && t2.net().isRailNet())
|
||||
log().fatal("Input {1} already connected\n", t2.name());
|
||||
connect_input_output(t2, t1);
|
||||
}
|
||||
else if (t1.isType(core_terminal_t::INPUT) && t2.isType(core_terminal_t::OUTPUT))
|
||||
else if (t1.is_type(core_terminal_t::INPUT) && t2.is_type(core_terminal_t::OUTPUT))
|
||||
{
|
||||
if (t1.has_net() && t1.net().isRailNet())
|
||||
log().fatal("Input {1} already connected\n", t1.name());
|
||||
connect_input_output(t1, t2);
|
||||
}
|
||||
else if (t1.isType(core_terminal_t::OUTPUT) && t2.isType(core_terminal_t::TERMINAL))
|
||||
else if (t1.is_type(core_terminal_t::OUTPUT) && t2.is_type(core_terminal_t::TERMINAL))
|
||||
{
|
||||
connect_terminal_output(dynamic_cast<terminal_t &>(t2), t1);
|
||||
}
|
||||
else if (t1.isType(core_terminal_t::TERMINAL) && t2.isType(core_terminal_t::OUTPUT))
|
||||
else if (t1.is_type(core_terminal_t::TERMINAL) && t2.is_type(core_terminal_t::OUTPUT))
|
||||
{
|
||||
connect_terminal_output(dynamic_cast<terminal_t &>(t1), t2);
|
||||
}
|
||||
else if (t1.isType(core_terminal_t::INPUT) && t2.isType(core_terminal_t::TERMINAL))
|
||||
else if (t1.is_type(core_terminal_t::INPUT) && t2.is_type(core_terminal_t::TERMINAL))
|
||||
{
|
||||
connect_terminal_input(dynamic_cast<terminal_t &>(t2), t1);
|
||||
}
|
||||
else if (t1.isType(core_terminal_t::TERMINAL) && t2.isType(core_terminal_t::INPUT))
|
||||
else if (t1.is_type(core_terminal_t::TERMINAL) && t2.is_type(core_terminal_t::INPUT))
|
||||
{
|
||||
connect_terminal_input(dynamic_cast<terminal_t &>(t1), t2);
|
||||
}
|
||||
else if (t1.isType(core_terminal_t::TERMINAL) && t2.isType(core_terminal_t::TERMINAL))
|
||||
else if (t1.is_type(core_terminal_t::TERMINAL) && t2.is_type(core_terminal_t::TERMINAL))
|
||||
{
|
||||
connect_terminals(dynamic_cast<terminal_t &>(t1), dynamic_cast<terminal_t &>(t2));
|
||||
}
|
||||
else if (t1.isType(core_terminal_t::INPUT) && t2.isType(core_terminal_t::INPUT))
|
||||
else if (t1.is_type(core_terminal_t::INPUT) && t2.is_type(core_terminal_t::INPUT))
|
||||
{
|
||||
ret = connect_input_input(t1, t2);
|
||||
}
|
||||
@ -768,7 +767,6 @@ void setup_t::resolve_inputs()
|
||||
|
||||
|
||||
log().verbose("looking for two terms connected to rail nets ...\n");
|
||||
// FIXME: doesn't find internal devices. This needs to be more clever
|
||||
for (std::size_t i=0; i < netlist().m_devices.size(); i++)
|
||||
{
|
||||
devices::NETLIB_NAME(twoterm) *t = dynamic_cast<devices::NETLIB_NAME(twoterm) *>(netlist().m_devices[i].get());
|
||||
|
@ -131,8 +131,6 @@ const pstring_t<F> pstring_t<F>::substr(int start, int count) const
|
||||
ret.pcopy(p, 0);
|
||||
else
|
||||
{
|
||||
//FIXME: Trait to tell which one
|
||||
//ret.pcopy(cstr() + start, count);
|
||||
// find start
|
||||
for (int i=0; i<start; i++)
|
||||
p += F::codelen(p);
|
||||
|
@ -50,7 +50,7 @@ public:
|
||||
void write_sample(int sample)
|
||||
{
|
||||
m_data.len += m_fmt.block_align;
|
||||
short ps = sample; /* 16 bit sample, FIXME: powerpc? */
|
||||
short ps = sample; /* 16 bit sample, FIXME: Endianess? */
|
||||
m_f.write(&ps, sizeof(ps));
|
||||
}
|
||||
|
||||
|
@ -136,7 +136,7 @@ void matrix_solver_t::setup_base(analog_net_t::list_t &nets)
|
||||
if (p->device().is_timestep())
|
||||
if (!m_step_devices.contains(&p->device()))
|
||||
m_step_devices.push_back(&p->device());
|
||||
if (p->device().is_dynamic1())
|
||||
if (p->device().is_dynamic())
|
||||
if (!m_dynamic_devices.contains(&p->device()))
|
||||
m_dynamic_devices.push_back(&p->device());
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user