summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/devices/nld_truthtable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/devices/nld_truthtable.cpp')
-rw-r--r--src/lib/netlist/devices/nld_truthtable.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/lib/netlist/devices/nld_truthtable.cpp b/src/lib/netlist/devices/nld_truthtable.cpp
index 1f671b23108..9cd2d206664 100644
--- a/src/lib/netlist/devices/nld_truthtable.cpp
+++ b/src/lib/netlist/devices/nld_truthtable.cpp
@@ -99,8 +99,8 @@ UINT32 truthtable_desc_t::get_ignored_extended(UINT32 i)
// desc
// ----------------------------------------------------------------------------------------
-void truthtable_desc_t::help(unsigned cur, pstring_list_t list,
- UINT64 state,UINT16 val, UINT8 *timing_index)
+void truthtable_desc_t::help(unsigned cur, pstring_vector_t list,
+ UINT64 state,UINT16 val, parray_t<UINT8> &timing_index)
{
pstring elem = list[cur].trim();
int start = 0;
@@ -144,7 +144,7 @@ void truthtable_desc_t::help(unsigned cur, pstring_list_t list,
}
}
-void truthtable_desc_t::setup(const pstring_list_t &truthtable, UINT32 disabled_ignore)
+void truthtable_desc_t::setup(const pstring_vector_t &truthtable, UINT32 disabled_ignore)
{
unsigned line = 0;
@@ -164,14 +164,14 @@ void truthtable_desc_t::setup(const pstring_list_t &truthtable, UINT32 disabled_
while (!ttline.equals(""))
{
- pstring_list_t io(ttline,"|");
+ pstring_vector_t io(ttline,"|");
// checks
nl_assert_always(io.size() == 3, "io.count mismatch");
- pstring_list_t inout(io[0], ",");
+ pstring_vector_t inout(io[0], ",");
nl_assert_always(inout.size() == m_num_bits, "number of bits not matching");
- pstring_list_t out(io[1], ",");
+ pstring_vector_t out(io[1], ",");
nl_assert_always(out.size() == m_NO, "output count not matching");
- pstring_list_t times(io[2], ",");
+ pstring_vector_t times(io[2], ",");
nl_assert_always(times.size() == m_NO, "timing count not matching");
UINT16 val = 0;
@@ -192,8 +192,11 @@ void truthtable_desc_t::setup(const pstring_list_t &truthtable, UINT32 disabled_
tindex[j] = k;
}
- help(0, inout, 0 , val, tindex.data());
- ttline = truthtable[line];
+ help(0, inout, 0 , val, tindex);
+ if (line < truthtable.size())
+ ttline = truthtable[line];
+ else
+ ttline = "";
line++;
}