Previous 199869 Revisions Next

r31093 Monday 23rd June, 2014 at 23:25:16 UTC by Couriersud
Fixed debug build and a bug in connecting analog output to analog input.
[src/emu/netlist]nl_base.c nl_parser.c nl_setup.c
[src/emu/netlist/analog]nld_solver.c
[src/emu/netlist/devices]nld_74ls629.c

trunk/src/emu/netlist/nl_parser.c
r31092r31093
385385   {
386386      pstring t1 = get_identifier();
387387      m_setup.register_link(last , t1);
388       NL_VERBOSE_OUT(("Parser: Connect: %s %s\n", last.cstr(), t1.cstr()));
388389      token_t n = get_token();
389390      if (n.is(m_tok_param_right))
390391         break;
r31092r31093
393394      last = t1;
394395   }
395396
396   NL_VERBOSE_OUT(("Parser: Connect: %s %s\n", t1.cstr(), t2.cstr()));
397397}
398398
399399void netlist_parser::netdev_param()
trunk/src/emu/netlist/nl_setup.c
r31092r31093
444444   }
445445   else
446446   {
447      out.net().register_con(in);
447       if (in.has_net())
448           out.net().merge_net(&in.net());
449       else
450           out.net().register_con(in);
448451   }
449452}
450453
r31092r31093
482485{
483486   if (out.isFamily(netlist_terminal_t::ANALOG))
484487   {
488       NL_VERBOSE_OUT(("connect_terminal_output: %s %s\n", in.name().cstr(), out.name().cstr()));
485489      /* no proxy needed, just merge existing terminal net */
486490      if (in.has_net())
487491         out.net().merge_net(&in.net());
r31092r31093
660664
661665
662666   netlist().log("looking for two terms connected to rail nets ...\n");
667   // FIXME: doesn't find internal devices. This needs to be more clever
663668   for (int i=0; i < netlist().m_devices.count(); i++)
664669   {
665670      NETLIB_NAME(twoterm) *t = dynamic_cast<NETLIB_NAME(twoterm) *>(netlist().m_devices[i]);
r31092r31093
693698      for (int i=0; i < ll.count(); i++)
694699      {
695700         NL_VERBOSE_OUT(("%d: <%s>\n",i, ll[i].cstr()));
696         printf("%d: <%s>\n",i, ll[i].cstr());
701         NL_VERBOSE_OUT(("%d: <%s>\n",i, ll[i].cstr()));
697702         netlist_device_t *nc = factory().new_device_by_classname("nld_log", *this);
698703         pstring name = "log_" + ll[i];
699704         register_dev(nc, name);
trunk/src/emu/netlist/devices/nld_74ls629.c
r31092r31093
5757NETLIB_RESET(SN74LS629clk)
5858{
5959   m_enableq = 1;
60   m_out = 0;
6061   m_inc = netlist_time::zero;
6162}
6263
r31092r31093
143144      //        or an exact model ...
144145      m_clock.m_inc = netlist_time::from_double(0.5 / freq);
145146      //m_clock.update();
147
148      NL_VERBOSE_OUT(("%s %f %f %f\n", name().cstr(), v_freq, v_rng, freq));
146149   }
147150
148151   if (!m_clock.m_enableq && INPLOGIC(m_ENQ))
trunk/src/emu/netlist/nl_base.c
r31092r31093
5757{
5858   NL_VERBOSE_OUT(("on_pre_save\n"));
5959   m_qsize = this->count();
60   NL_VERBOSE_OUT(("current time %f qsize %d\n", m_netlist.time().as_double(), m_qsize));
60   NL_VERBOSE_OUT(("current time %f qsize %d\n", netlist().time().as_double(), m_qsize));
6161   for (int i = 0; i < m_qsize; i++ )
6262   {
6363      m_times[i] =  this->listptr()[i].exec_time().as_raw();
r31092r31093
7272void netlist_queue_t::on_post_load()
7373{
7474   this->clear();
75   NL_VERBOSE_OUT(("current time %f qsize %d\n", m_netlist.time().as_double(), m_qsize));
75   NL_VERBOSE_OUT(("current time %f qsize %d\n", netlist().time().as_double(), m_qsize));
7676   for (int i = 0; i < m_qsize; i++ )
7777   {
7878      netlist_net_t *n = netlist().find_net(&(m_name[i][0]));
r31092r31093
334334ATTR_COLD netlist_core_device_t::netlist_core_device_t(const family_t afamily)
335335: netlist_object_t(DEVICE, afamily)
336336{
337    assert((afamily == GENERIC && logic_family() != NULL) || (afamily != GENERIC && logic_family() == NULL));
338337}
339338
340339ATTR_COLD void netlist_core_device_t::init(netlist_base_t &anetlist, const pstring &name)
r31092r31093
781780
782781ATTR_HOT void netlist_terminal_t::schedule_solve()
783782{
784    net().as_analog().solver()->update_forced();
783    // FIXME: Remove this after we found a way to remove *ALL* twoterms connected to railnets only.
784    if (net().as_analog().solver() != NULL)
785        net().as_analog().solver()->update_forced();
785786}
786787
787788ATTR_HOT void netlist_terminal_t::schedule_after(const netlist_time &after)
788789{
789    net().as_analog().solver()->update_after(after);
790    // FIXME: Remove this after we found a way to remove *ALL* twoterms connected to railnets only.
791    if (net().as_analog().solver() != NULL)
792        net().as_analog().solver()->update_after(after);
790793}
791794
792795ATTR_COLD void netlist_terminal_t::reset()
trunk/src/emu/netlist/analog/nld_solver.c
r31092r31093
187187               break;
188188         }
189189      }
190      NL_VERBOSE_OUT(("added net with %d populated connections (%d railnets)\n", net->m_terms.count(), (*pn)->m_rails.count()));
190      NL_VERBOSE_OUT(("added net with %d populated connections\n", net->m_core_terms.count()));
191191   }
192192}
193193

Previous 199869 Revisions Next


© 1997-2024 The MAME Team