summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/mc6845.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/video/mc6845.cpp')
-rw-r--r--src/devices/video/mc6845.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/devices/video/mc6845.cpp b/src/devices/video/mc6845.cpp
index 119297553ef..be0adeefc84 100644
--- a/src/devices/video/mc6845.cpp
+++ b/src/devices/video/mc6845.cpp
@@ -112,6 +112,11 @@ mc6845_device::mc6845_device(const machine_config &mconfig, device_type type, co
m_visarea_adjust_min_y(0),
m_visarea_adjust_max_y(0),
m_hpixels_per_column(0),
+ m_reconfigure_cb(*this),
+ m_begin_update_cb(*this),
+ m_update_row_cb(*this),
+ m_end_update_cb(*this),
+ m_on_update_addr_changed_cb(*this),
m_out_de_cb(*this),
m_out_cur_cb(*this),
m_out_hsync_cb(*this),
@@ -1135,19 +1140,19 @@ void mc6845_device::device_start()
assert(clock() > 0);
assert(m_hpixels_per_column > 0);
+ /* bind delegates */
+ m_reconfigure_cb.resolve();
+ m_begin_update_cb.resolve();
+ m_update_row_cb.resolve();
+ m_end_update_cb.resolve();
+ m_on_update_addr_changed_cb.resolve();
+
/* resolve callbacks */
m_out_de_cb.resolve_safe();
m_out_cur_cb.resolve_safe();
m_out_hsync_cb.resolve_safe();
m_out_vsync_cb.resolve_safe();
- /* bind delegates */
- m_reconfigure_cb.bind_relative_to(*owner());
- m_begin_update_cb.bind_relative_to(*owner());
- m_update_row_cb.bind_relative_to(*owner());
- m_end_update_cb.bind_relative_to(*owner());
- m_on_update_addr_changed_cb.bind_relative_to(*owner());
-
/* create the timers */
m_line_timer = timer_alloc(TIMER_LINE);
m_de_off_timer = timer_alloc(TIMER_DE_OFF);
@@ -1390,7 +1395,7 @@ void mos8563_device::device_start()
m_update_ready_bit = 1;
// default update_row delegate
- m_update_row_cb = update_row_delegate(FUNC(mos8563_device::vdc_update_row), this);
+ m_update_row_cb.set(*this, FUNC(mos8563_device::vdc_update_row));
m_char_blink_state = false;
m_char_blink_count = 0;