Previous 199869 Revisions Next

r34434 Saturday 17th January, 2015 at 13:35:34 UTC by Couriersud
Remove dependencies on mame headers in netlist code. (nw)
[src/emu/netlist]nl_base.c nl_base.h nl_config.h nl_lists.h nl_setup.c plists.h pstring.c
[src/emu/netlist/analog]nld_bjt.c nld_solver.h
[src/emu/netlist/devices]nld_4020.c nld_74107.c nld_74123.c nld_74153.c nld_7448.c nld_7474.c nld_7483.c nld_7490.c nld_7493.c nld_74ls629.c nld_9316.c nld_ne555.c nld_signal.h nld_system.h nld_truthtable.h

trunk/src/emu/netlist/analog/nld_bjt.c
r242945r242946
7575   connect(m_RB.m_P, m_BC_dummy.m_P);
7676   connect(m_RC.m_P, m_BC_dummy.m_N);
7777
78   save(NAME(m_state_on));
78   save(NLNAME(m_state_on));
7979
8080   m_RB.set(netlist().gmin(), 0.0, 0.0);
8181   m_RC.set(netlist().gmin(), 0.0, 0.0);
trunk/src/emu/netlist/analog/nld_solver.h
r242945r242946
8888   vector_ops_impl_t(int size)
8989   : vector_ops_t(size)
9090   {
91      assert(m_N == 0);
91      nl_assert(m_N == 0);
9292   }
9393
9494   virtual ~vector_ops_impl_t() {}
trunk/src/emu/netlist/devices/nld_4020.c
r242945r242946
5151   register_output("Q13", m_Q[12]);
5252   register_output("Q14", m_Q[13]);
5353
54   save(NAME(m_cnt));
54   save(NLNAME(m_cnt));
5555}
5656
5757NETLIB_RESET(4020_sub)
trunk/src/emu/netlist/devices/nld_74107.c
r242945r242946
1111   register_output("Q", m_Q);
1212   register_output("QQ", m_QQ);
1313
14   save(NAME(m_Q1));
15   save(NAME(m_Q2));
16   save(NAME(m_F));
14   save(NLNAME(m_Q1));
15   save(NLNAME(m_Q2));
16   save(NLNAME(m_F));
1717}
1818
1919NETLIB_RESET(74107Asub)
trunk/src/emu/netlist/devices/nld_74123.c
r242945r242946
3232   connect(m_RN.m_P, m_RP.m_N);
3333   connect(m_CV, m_RN.m_P);
3434
35   save(NAME(m_last_trig));
36   save(NAME(m_state));
37   save(NAME(m_KP));
35   save(NLNAME(m_last_trig));
36   save(NLNAME(m_state));
37   save(NLNAME(m_KP));
3838
3939   m_KP = 1.0 / (1.0 + exp(m_K.Value()));
4040}
trunk/src/emu/netlist/devices/nld_74153.c
r242945r242946
2222
2323   m_chan = 0;
2424
25   save(NAME(m_chan));
25   save(NLNAME(m_chan));
2626}
2727
2828NETLIB_RESET(74153sub)
trunk/src/emu/netlist/devices/nld_7448.c
r242945r242946
7878   register_output("f", m_f);
7979   register_output("g", m_g);
8080
81   save(NAME(m_state));
81   save(NLNAME(m_state));
8282}
8383
8484NETLIB_RESET(7448_sub)
r242945r242946
9898
9999NETLIB_FUNC_VOID(7448_sub, update_outputs, (UINT8 v))
100100{
101   assert(v<16);
101   nl_assert(v<16);
102102   if (v != m_state)
103103   {
104104      // max transfer time is 100 NS */
trunk/src/emu/netlist/devices/nld_7474.c
r242945r242946
7676   register_output("Q",   m_Q);
7777   register_output("QQ",  m_QQ);
7878
79   save(NAME(m_nextD));
79   save(NLNAME(m_nextD));
8080}
8181
8282NETLIB_RESET(7474sub)
trunk/src/emu/netlist/devices/nld_7483.c
r242945r242946
2323   register_output("S4", m_S4);
2424   register_output("C4", m_C4);
2525
26   save(NAME(m_lastr));
26   save(NLNAME(m_lastr));
2727}
2828
2929NETLIB_RESET(7483)
trunk/src/emu/netlist/devices/nld_7490.c
r242945r242946
1919   register_output("QC", m_Q[2]);
2020   register_output("QD", m_Q[3]);
2121
22   save(NAME(m_cnt));
23   save(NAME(m_last_A));
24   save(NAME(m_last_B));
22   save(NLNAME(m_cnt));
23   save(NLNAME(m_last_A));
24   save(NLNAME(m_last_B));
2525
2626}
2727
trunk/src/emu/netlist/devices/nld_7493.c
r242945r242946
4040   register_input("CLK", m_I);
4141   register_output("Q", m_Q);
4242
43   save(NAME(m_reset));
43   save(NLNAME(m_reset));
4444}
4545
4646NETLIB_RESET(7493ff)
trunk/src/emu/netlist/devices/nld_74ls629.c
r242945r242946
4949
5050   reset();
5151
52   save(NAME(m_enableq));
53   save(NAME(m_inc));
54   save(NAME(m_out));
52   save(NLNAME(m_enableq));
53   save(NLNAME(m_inc));
54   save(NLNAME(m_out));
5555}
5656
5757NETLIB_RESET(SN74LS629clk)
trunk/src/emu/netlist/devices/nld_9316.c
r242945r242946
7373   register_output("QD", m_QD);
7474   register_output("RC", m_RC);
7575
76   save(NAME(m_cnt.ref()));
77   save(NAME(m_loadq.ref()));
78   save(NAME(m_ent.ref()));
76   save(NLNAME(m_cnt.ref()));
77   save(NLNAME(m_loadq.ref()));
78   save(NLNAME(m_ent.ref()));
7979}
8080
8181NETLIB_RESET(9316_sub)
trunk/src/emu/netlist/devices/nld_ne555.c
r242945r242946
4242   connect(m_R2.m_N, m_R3.m_P);
4343   connect(m_RDIS.m_N, m_R3.m_N);
4444
45   save(NAME(m_last_out));
45   save(NLNAME(m_last_out));
4646}
4747
4848NETLIB_RESET(NE555)
trunk/src/emu/netlist/devices/nld_signal.h
r242945r242946
4444      {
4545         register_input(sIN[i], m_i[i]);
4646      }
47      save(NAME(m_active));
47      save(NLNAME(m_active));
4848   }
4949
5050   ATTR_COLD void reset()
r242945r242946
118118      register_input("A", m_i[0]);
119119      register_input("B", m_i[1]);
120120
121      save(NAME(m_active));
121      save(NLNAME(m_active));
122122   }
123123
124124   ATTR_COLD void reset()
trunk/src/emu/netlist/devices/nld_system.h
r242945r242946
198198   ATTR_COLD nld_a_to_d_proxy(netlist_input_t &in_proxied)
199199         : netlist_device_t()
200200   {
201      assert(in_proxied.family() == LOGIC);
201      nl_assert(in_proxied.family() == LOGIC);
202202      m_I.m_logic_family = in_proxied.m_logic_family;
203203   }
204204
r242945r242946
240240   ATTR_COLD nld_base_d_to_a_proxy(netlist_output_t &out_proxied)
241241         : netlist_device_t()
242242   {
243      assert(out_proxied.family() == LOGIC);
243      nl_assert(out_proxied.family() == LOGIC);
244244      m_logic_family = out_proxied.m_logic_family;
245245   }
246246
trunk/src/emu/netlist/devices/nld_truthtable.h
r242945r242946
5050      {
5151         nl_util::pstring_list io = nl_util::split(ttline,"|");
5252         // checks
53         assert(io.count() == 2);
53         nl_assert(io.count() == 2);
5454         nl_util::pstring_list inout = nl_util::split(io[0], ",");
55         assert(inout.count() == m_num_bits);
55         nl_assert(inout.count() == m_num_bits);
5656         nl_util::pstring_list out = nl_util::split(io[1], ",");
57         assert(out.count() == m_NO);
57         nl_assert(out.count() == m_NO);
5858
5959         for (int i=0; i < m_NI; i++)
6060         {
r242945r242946
133133      {
134134         nl_util::pstring_list io = nl_util::split(ttline,"|");
135135         // checks
136         assert(io.count() == 3);
136         nl_assert(io.count() == 3);
137137         nl_util::pstring_list inout = nl_util::split(io[0], ",");
138         assert(inout.count() == m_num_bits);
138         nl_assert(inout.count() == m_num_bits);
139139         nl_util::pstring_list out = nl_util::split(io[1], ",");
140         assert(out.count() == m_NO);
140         nl_assert(out.count() == m_NO);
141141         nl_util::pstring_list times = nl_util::split(io[2], ",");
142         assert(times.count() == m_NO);
142         nl_assert(times.count() == m_NO);
143143
144144         UINT16 val = 0;
145145         UINT8 tindex[m_NO];
trunk/src/emu/netlist/nl_base.c
r242945r242946
99#include "pstring.h"
1010#include "nl_util.h"
1111
12#include <stdlib.h> // FIXME: only included for atof
13
1214const netlist_time netlist_time::zero = netlist_time::from_raw(0);
1315
1416netlist_logic_family_desc_t netlist_family_TTL =
r242945r242946
164166ATTR_COLD void netlist_base_t::save_register()
165167{
166168   save(static_cast<pstate_callback_t &>(m_queue), "m_queue");
167   save(NAME(m_time));
169   save(NLNAME(m_time));
168170   netlist_object_t::save_register();
169171}
170172
r242945r242946
529531
530532ATTR_COLD void netlist_net_t::register_railterminal(netlist_output_t &mr)
531533{
532   assert(m_railterminal == NULL);
534   nl_assert(m_railterminal == NULL);
533535   m_railterminal = &mr;
534536}
535537
r242945r242946
545547
546548ATTR_COLD void netlist_net_t::save_register()
547549{
548   save(NAME(m_time));
549   save(NAME(m_active));
550   save(NAME(m_in_queue));
551   save(NAME(m_cur_Analog));
552   save(NAME(m_cur_Q));
553   save(NAME(m_new_Q));
550   save(NLNAME(m_time));
551   save(NLNAME(m_active));
552   save(NLNAME(m_in_queue));
553   save(NLNAME(m_cur_Analog));
554   save(NLNAME(m_cur_Q));
555   save(NLNAME(m_new_Q));
554556   netlist_object_t::save_register();
555557}
556558
r242945r242946
569571ATTR_HOT ATTR_ALIGN inline void netlist_net_t::update_devs()
570572{
571573   //assert(m_num_cons != 0);
572   assert(this->isRailNet());
574   nl_assert(this->isRailNet());
573575
574576   const UINT32 masks[4] = { 1, 5, 3, 1 };
575577   const UINT32 mask = masks[ (m_cur_Q  << 1) | m_new_Q ];
r242945r242946
707709
708710ATTR_COLD void netlist_analog_net_t::save_register()
709711{
710   save(NAME(m_DD_n_m_1));
711   save(NAME(m_h_n_m_1));
712   save(NLNAME(m_DD_n_m_1));
713   save(NLNAME(m_h_n_m_1));
712714   netlist_net_t::save_register();
713715}
714716
r242945r242946
803805
804806ATTR_COLD void netlist_terminal_t::save_register()
805807{
806   save(NAME(m_Idr1));
807   save(NAME(m_go1));
808   save(NAME(m_gt1));
808   save(NLNAME(m_Idr1));
809   save(NLNAME(m_go1));
810   save(NLNAME(m_gt1));
809811   netlist_core_terminal_t::save_register();
810812}
811813
trunk/src/emu/netlist/nl_base.h
r242945r242946
444444   ATTR_HOT inline const state_e state() const { return m_state; }
445445   ATTR_HOT inline void set_state(const state_e astate)
446446   {
447      assert(astate != STATE_NONEX);
447      nl_assert(astate != STATE_NONEX);
448448      m_state = astate;
449449   }
450450
r242945r242946
453453protected:
454454   ATTR_COLD virtual void save_register()
455455   {
456      save(NAME(m_state));
456      save(NLNAME(m_state));
457457      netlist_owned_object_t::save_register();
458458   }
459459
r242945r242946
710710    */
711711   ATTR_COLD inline netlist_sig_t &Q_state_ptr()
712712   {
713      assert(family() == LOGIC);
713      nl_assert(family() == LOGIC);
714714      return m_cur_Q;
715715   }
716716
r242945r242946
738738
739739   ATTR_HOT inline const double Q_Analog() const
740740   {
741      //assert(object_type(SIGNAL_MASK) == SIGNAL_ANALOG);
742      assert(family() == ANALOG);
741      //nl_assert(object_type(SIGNAL_MASK) == SIGNAL_ANALOG);
742      nl_assert(family() == ANALOG);
743743      return m_cur_Analog;
744744   }
745745
746746   ATTR_COLD inline double &Q_Analog_state_ptr()
747747   {
748      //assert(object_type(SIGNAL_MASK) == SIGNAL_ANALOG);
749      assert(family() == ANALOG);
748      //nl_assert(object_type(SIGNAL_MASK) == SIGNAL_ANALOG);
749      nl_assert(family() == ANALOG);
750750      return m_cur_Analog;
751751   }
752752
r242945r242946
883883protected:
884884   ATTR_COLD virtual void save_register()
885885   {
886      save(NAME(m_param));
886      save(NLNAME(m_param));
887887      netlist_param_t::save_register();
888888   }
889889
r242945r242946
905905protected:
906906   ATTR_COLD virtual void save_register()
907907   {
908      save(NAME(m_param));
908      save(NLNAME(m_param));
909909      netlist_param_t::save_register();
910910   }
911911
r242945r242946
988988
989989   ATTR_HOT inline const netlist_sig_t INPLOGIC(const netlist_logic_input_t &inp) const
990990   {
991      assert(inp.state() != netlist_input_t::STATE_INP_PASSIVE);
991      nl_assert(inp.state() != netlist_input_t::STATE_INP_PASSIVE);
992992      return inp.Q();
993993   }
994994
r242945r242946
12621262
12631263ATTR_HOT inline netlist_logic_net_t & RESTRICT netlist_net_t::as_logic()
12641264{
1265   assert(family() == LOGIC);
1265   nl_assert(family() == LOGIC);
12661266   return static_cast<netlist_logic_net_t &>(*this);
12671267}
12681268
12691269ATTR_HOT inline const netlist_logic_net_t & RESTRICT netlist_net_t::as_logic() const
12701270{
1271   assert(family() == LOGIC);
1271    nl_assert(family() == LOGIC);
12721272   return static_cast<const netlist_logic_net_t &>(*this);
12731273}
12741274
12751275ATTR_HOT inline netlist_analog_net_t & RESTRICT netlist_net_t::as_analog()
12761276{
1277   assert(family() == ANALOG);
1277    nl_assert(family() == ANALOG);
12781278   return static_cast<netlist_analog_net_t &>(*this);
12791279}
12801280
12811281ATTR_HOT inline const netlist_analog_net_t & RESTRICT netlist_net_t::as_analog() const
12821282{
1283   assert(family() == ANALOG);
1283   nl_assert(family() == ANALOG);
12841284   return static_cast<const netlist_analog_net_t &>(*this);
12851285}
12861286
trunk/src/emu/netlist/nl_config.h
r242945r242946
1010
1111/* FIXME: at some time, make it compile on it's own */
1212
13#include "emu.h"
13#include "osdcore.h"
14#include "corealloc.h"
15#include <math.h>
16#include <exception>
17#include <typeinfo>
1418
1519//============================================================
1620//  SETUP
r242945r242946
102106#define end_timing(v)           do { } while (0)
103107#endif
104108
109// this macro passes an item followed by a string version of itself as two consecutive parameters
110#define NLNAME(x) x, #x
105111
112// emu_fatalerror is a generic fatal exception that provides an error string
113class nl_fatalerror : public std::exception
114{
115public:
116    nl_fatalerror(const char *format, ...) ATTR_PRINTF(2,3)
117    {
118        char text[1024];
119        va_list ap;
120        va_start(ap, format);
121        vsprintf(text, format, ap);
122        va_end(ap);
123        osd_printf_error("%s\n", text);
124    }
125    nl_fatalerror(const char *format, va_list ap)
126    {
127        char text[1024];
128        vsprintf(text, format, ap);
129        osd_printf_error("%s\n", text);
130    }
131};
132
133#ifdef MAME_DEBUG
134#define nl_assert(x)               do { if (!(x)) throw nl_fatalerror("assert: %s:%d: %s", __FILE__, __LINE__, #x); } while (0)
135#define nl_assert_always(x, msg)   do { if (!(x)) throw nl_fatalerror("Fatal error: %s\nCaused by assert: %s:%d: %s", msg, __FILE__, __LINE__, #x); } while (0)
136#else
137#define nl_assert(x)               do { } while (0)
138//#define assert_always(x, msg)   do { if (!(x)) throw emu_fatalerror("Fatal error: %s (%s:%d)", msg, __FILE__, __LINE__); } while (0)
139#define nl_assert_always(x, msg)   do { } while (0)
140#endif
141
106142//============================================================
107143//  Compiling standalone
108144//============================================================
r242945r242946
110146// Compiling without mame ?
111147
112148#ifndef ATTR_HOT
113//#warning ATTR_HOT not defined
149#warning ATTR_HOT not defined
114150
115151// standard C includes
116152#include <math.h>
r242945r242946
132168#define UNEXPECTED
133169#define ATTR_UNUSED             __attribute__((__unused__))
134170
135// this macro passes an item followed by a string version of itself as two consecutive parameters
136#define NAME(x) x, #x
137
138171/* 8-bit values */
139172typedef unsigned char                       UINT8;
140173typedef signed char                         INT8;
r242945r242946
160193#endif
161194#endif
162195
163#ifdef MAME_DEBUG
164#define assert(x)               do { if (!(x)) throw emu_fatalerror("assert: %s:%d: %s", __FILE__, __LINE__, #x); } while (0)
165#define assert_always(x, msg)   do { if (!(x)) throw emu_fatalerror("Fatal error: %s\nCaused by assert: %s:%d: %s", msg, __FILE__, __LINE__, #x); } while (0)
166#else
167#define assert(x)               do { } while (0)
168//#define assert_always(x, msg)   do { if (!(x)) throw emu_fatalerror("Fatal error: %s (%s:%d)", msg, __FILE__, __LINE__); } while (0)
169#define assert_always(x, msg)   do { } while (0)
170#endif
171
172196/* U64 and S64 are used to wrap long integer constants. */
173197#if defined(__GNUC__) || defined(_MSC_VER)
174198#define U64(val) val##ULL
trunk/src/emu/netlist/nl_lists.h
r242945r242946
5959      }
6060      *i = e;
6161      inc_stat(m_prof_sort);
62      assert(m_end - m_list < _Size);
62      nl_assert(m_end - m_list < _Size);
6363   }
6464
6565   ATTR_HOT inline const entry_t *pop()
trunk/src/emu/netlist/nl_setup.c
r242945r242946
1414#include "analog/nld_solver.h"
1515#include "analog/nld_twoterm.h"
1616
17//FIXME: we need a nl_getenv
18#include <stdlib.h>
19
1720static NETLIST_START(base)
1821   TTL_INPUT(ttlhigh, 1)
1922   TTL_INPUT(ttllow, 0)
r242945r242946
378381
379382nld_base_d_to_a_proxy *netlist_setup_t::get_d_a_proxy(netlist_output_t &out)
380383{
381   assert(out.isFamily(netlist_terminal_t::LOGIC));
384   nl_assert(out.isFamily(netlist_terminal_t::LOGIC));
382385
383386   //printf("proxy for %s\n", out.name().cstr());;
384387   netlist_logic_output_t &out_cast = dynamic_cast<netlist_logic_output_t &>(out);
r242945r242946
499502
500503void netlist_setup_t::connect_terminals(netlist_core_terminal_t &t1, netlist_core_terminal_t &t2)
501504{
502   //assert(in.isType(netlist_terminal_t::TERMINAL));
503   //assert(out.isType(netlist_terminal_t::TERMINAL));
505   //nl_assert(in.isType(netlist_terminal_t::TERMINAL));
506   //nl_assert(out.isType(netlist_terminal_t::TERMINAL));
504507
505508   if (t1.has_net() && t2.has_net())
506509   {
r242945r242946
683686
684687void netlist_setup_t::start_devices()
685688{
689    //FIXME: we need a nl_getenv
686690   if (getenv("NL_LOGS"))
687691   {
688692      NL_VERBOSE_OUT(("Creating dynamic logs ...\n"));
trunk/src/emu/netlist/plists.h
r242945r242946
108108
109109   ATTR_HOT inline void remove_at(const int pos)
110110   {
111      assert((pos>=0) && (pos<m_count));
111      nl_assert((pos>=0) && (pos<m_count));
112112      m_count--;
113113      for (int i = pos; i < m_count; i++)
114114      {
r242945r242946
118118
119119   ATTR_HOT inline void swap(const int pos1, const int pos2)
120120   {
121      assert((pos1>=0) && (pos1<m_count));
122      assert((pos2>=0) && (pos2<m_count));
121      nl_assert((pos1>=0) && (pos1<m_count));
122      nl_assert((pos2>=0) && (pos2<m_count));
123123      _ListClass tmp = m_list[pos1];
124124      m_list[pos1] = m_list[pos2];
125125      m_list[pos2] =tmp;
r242945r242946
331331            }
332332            p = p->m_next;
333333         }
334         assert_always(false, "element not found");
334         nl_assert_always(false, "element not found");
335335      }
336336   }
337337
r242945r242946
357357      _ListClass **p = &m_head;
358358      while (*p != &elem)
359359      {
360         assert(*p != NULL);
360         nl_assert(*p != NULL);
361361         p = &((*p)->m_next);
362362      }
363363      (*p) = elem.m_next;
trunk/src/emu/netlist/pstring.c
r242945r242946
55
66#include "pstring.h"
77#include <cstdio>
8#include <stdlib.h>
89
910
1011// The following will work on linux, however not on Windows ....


Previous 199869 Revisions Next


© 1997-2024 The MAME Team