diff options
Diffstat (limited to 'src/devices/machine/terminal.cpp')
-rw-r--r-- | src/devices/machine/terminal.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/devices/machine/terminal.cpp b/src/devices/machine/terminal.cpp index c2e5c5be205..b367a12857b 100644 --- a/src/devices/machine/terminal.cpp +++ b/src/devices/machine/terminal.cpp @@ -1,7 +1,8 @@ // license:BSD-3-Clause // copyright-holders:Miodrag Milanovic #include "emu.h" -#include "machine/terminal.h" +#include "terminal.h" + #include "screen.h" #include "speaker.h" @@ -154,7 +155,7 @@ generic_terminal_device::generic_terminal_device(const machine_config &mconfig, , m_y_pos(0) , m_bell_timer(nullptr) , m_beeper(*this, "beeper") - , m_keyboard_cb() + , m_keyboard_cb(*this) { } @@ -220,7 +221,7 @@ void generic_terminal_device::term_write(uint8_t data) case 0x0d: // carriage return m_x_pos = 0; if (!(options & 0x080)) break; - + [[fallthrough]]; case 0x0a: // linefeed m_y_pos++; if (m_y_pos >= m_height) @@ -276,7 +277,7 @@ uint32_t generic_terminal_device::update(screen_device &device, bitmap_rgb32 &bi { for (uint8_t ra = 0; ra < 10; ra++) { - uint32_t *p = &bitmap.pix32(sy++); + uint32_t *p = &bitmap.pix(sy++); for (uint16_t x = ma; x < ma + m_width; x++) { @@ -346,8 +347,8 @@ void generic_terminal_device::device_add_mconfig(machine_config &config) void generic_terminal_device::device_start() { m_buffer = std::make_unique<uint8_t []>(m_width * m_height); - m_bell_timer = timer_alloc(BELL_TIMER_ID); - m_keyboard_cb.bind_relative_to(*owner()); + m_bell_timer = timer_alloc(FUNC(generic_terminal_device::bell_off), this); + m_keyboard_cb.resolve_safe(); save_pointer(NAME(m_buffer), m_width * m_height); save_item(NAME(m_x_pos)); save_item(NAME(m_framecnt)); @@ -361,14 +362,9 @@ void generic_terminal_device::device_reset() m_framecnt = 0; } -void generic_terminal_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +TIMER_CALLBACK_MEMBER(generic_terminal_device::bell_off) { - switch (id) - { - case BELL_TIMER_ID: - m_beeper->set_state(0); - break; - } + m_beeper->set_state(0); } /* |