diff options
author | 2012-02-19 16:46:00 +0000 | |
---|---|---|
committer | 2012-02-19 16:46:00 +0000 | |
commit | e82fa6e24e14431fb621b8b96016e5bb10e20249 (patch) | |
tree | e18ed50548dde6968bc5c238224a851c414a5ae6 /src/emu/imagedev/bitbngr.c | |
parent | d24e475f0e34e57f053fa01e9672d8a814761572 (diff) |
Rewrite INS8250 to use diserial, updated Microtouch to modern and made it serial device, updated connected drivers [Carl]
Diffstat (limited to 'src/emu/imagedev/bitbngr.c')
-rw-r--r-- | src/emu/imagedev/bitbngr.c | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/emu/imagedev/bitbngr.c b/src/emu/imagedev/bitbngr.c index 19702a12d76..c57a2dda0ab 100644 --- a/src/emu/imagedev/bitbngr.c +++ b/src/emu/imagedev/bitbngr.c @@ -303,8 +303,6 @@ void bitbanger_device::bytes_to_bits_81N(void) void bitbanger_device::device_start(void) { - const bitbanger_config *config = (const bitbanger_config *) static_config(); - /* output config */ m_build_count = 0; m_output_timer = timer_alloc(TIMER_OUTPUT); @@ -316,13 +314,13 @@ void bitbanger_device::device_start(void) m_input_buffer_cursor = 0; /* defaults */ - m_mode = config->m_default_mode; - m_baud = config->m_default_baud; - m_tune = config->m_default_tune; + m_mode = m_default_mode; + m_baud = m_default_baud; + m_tune = m_default_tune; m_current_baud = attotime::from_hz(baud_value()); /* callback */ - m_input_callback.resolve(config->m_input_callback, *this); + m_input_func.resolve(m_input_callback, *this); } @@ -333,6 +331,18 @@ void bitbanger_device::device_start(void) void bitbanger_device::device_config_complete(void) { + const _bitbanger_config *intf = reinterpret_cast<const _bitbanger_config *>(static_config()); + if(intf != NULL) + { + *static_cast<_bitbanger_config *>(this) = *intf; + } + else + { + memset(&m_input_callback, 0, sizeof(m_input_callback)); + m_default_mode = 0; + m_default_baud = 0; + m_default_tune = 0; + } update_names(); } @@ -433,10 +443,7 @@ void bitbanger_device::set_input_line(UINT8 line) if (m_current_input != line) { m_current_input = line; - if (!m_input_callback.isnull()) - { - m_input_callback(line ? ASSERT_LINE : CLEAR_LINE); - } + m_input_func(line ? ASSERT_LINE : CLEAR_LINE); } } |