summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/hazeltin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/hazeltin.cpp')
-rw-r--r--src/mame/drivers/hazeltin.cpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/mame/drivers/hazeltin.cpp b/src/mame/drivers/hazeltin.cpp
index 79ced7c59d9..6a0e59f61e3 100644
--- a/src/mame/drivers/hazeltin.cpp
+++ b/src/mame/drivers/hazeltin.cpp
@@ -141,9 +141,6 @@ public:
private:
virtual void machine_start() override;
virtual void machine_reset() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param) override;
-
- static const device_timer_id TIMER_IOWQ = 0;
uint32_t screen_update_hazl1500(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
@@ -172,6 +169,8 @@ private:
void hazl1500_io(address_map &map);
void hazl1500_mem(address_map &map);
+ TIMER_CALLBACK_MEMBER(update_iowq);
+
required_device<cpu_device> m_maincpu;
required_device<netlist_mame_device> m_video_board;
required_device<netlist_mame_ram_pointer_device> m_u9;
@@ -233,7 +232,7 @@ void hazl1500_state::machine_start()
{
m_screen_buf = std::make_unique<float[]>(SCREEN_HTOTAL * SCREEN_VTOTAL);
- m_iowq_timer = timer_alloc(TIMER_IOWQ);
+ m_iowq_timer = timer_alloc(FUNC(hazl1500_state::update_iowq), this);
m_iowq_timer->adjust(attotime::never);
m_uart->write_swe(0);
@@ -253,7 +252,7 @@ void hazl1500_state::machine_reset()
m_kbd_status_latch = 0;
}
-void hazl1500_state::device_timer(emu_timer &timer, device_timer_id id, int param)
+TIMER_CALLBACK_MEMBER(hazl1500_state::update_iowq)
{
m_cpu_iowq->write(1);
m_cpu_ba4->write(1);
@@ -394,7 +393,6 @@ WRITE_LINE_MEMBER(hazl1500_state::ay3600_data_ready_w)
NETDEV_ANALOG_CALLBACK_MEMBER(hazl1500_state::vblank_cb)
{
- synchronize();
if (int(data) > 1)
{
m_kbd_status_latch &= ~KBD_STATUS_TV_UB;
@@ -407,7 +405,6 @@ NETDEV_ANALOG_CALLBACK_MEMBER(hazl1500_state::vblank_cb)
NETDEV_ANALOG_CALLBACK_MEMBER(hazl1500_state::tvinterq_cb)
{
- synchronize();
if (int(data) > 1)
{
m_kbd_status_latch &= ~KBD_STATUS_TV_INT;
@@ -422,7 +419,6 @@ NETDEV_ANALOG_CALLBACK_MEMBER(hazl1500_state::tvinterq_cb)
NETDEV_ANALOG_CALLBACK_MEMBER(hazl1500_state::video_out_cb)
{
- synchronize();
attotime second_fraction(0, time.attoseconds());
attotime frame_fraction(0, (second_fraction * 60).attoseconds());
attotime pixel_time = frame_fraction * (SCREEN_HTOTAL * SCREEN_VTOTAL);
@@ -461,7 +457,6 @@ NETDEV_ANALOG_CALLBACK_MEMBER(hazl1500_state::video_out_cb)
void hazl1500_state::refresh_address_w(uint8_t data)
{
- synchronize();
//printf("refresh: %02x, %d, %d\n", data, m_screen->hpos(), m_screen->vpos());
m_iowq_timer->adjust(attotime::from_hz(XTAL(18'000'000)/9));
m_cpu_iowq->write(0);