diff options
author | 2020-10-09 19:46:36 +1100 | |
---|---|---|
committer | 2020-10-09 19:46:36 +1100 | |
commit | 1611b501e87b72af13ab6f9ce50f829354d68948 (patch) | |
tree | 493651a6a061c0f99f6a223a62f37d2f24030b29 | |
parent | d1473e0f2f014175f196f3d18affd7e0b5083b26 (diff) |
amust: removed anonymous timer
-rw-r--r-- | src/mame/drivers/amust.cpp | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/src/mame/drivers/amust.cpp b/src/mame/drivers/amust.cpp index 7441b4a3033..e62018b31fa 100644 --- a/src/mame/drivers/amust.cpp +++ b/src/mame/drivers/amust.cpp @@ -85,6 +85,7 @@ ToDo: #include "bus/rs232/rs232.h" #include "machine/upd765.h" #include "sound/beep.h" +#include "machine/timer.h" #include "video/mc6845.h" #include "emupal.h" #include "screen.h" @@ -106,16 +107,12 @@ public: , m_fdc (*this, "fdc") , m_floppy0(*this, "fdc:0") , m_floppy1(*this, "fdc:1") + , m_beep_timer(*this, "beep_timer") { } void amust(machine_config &config); private: - enum - { - TIMER_BEEP_OFF - }; - u8 port04_r(); void port04_w(u8 data); u8 port05_r(); @@ -133,6 +130,7 @@ private: DECLARE_WRITE_LINE_MEMBER(intrq_w); void kbd_put(u8 data); MC6845_UPDATE_ROW(crtc_update_row); + TIMER_DEVICE_CALLBACK_MEMBER(beep_timer); void io_map(address_map &map); void mem_map(address_map &map); @@ -151,7 +149,6 @@ private: bool m_hsync; bool m_vsync; std::unique_ptr<u8[]> m_vram; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; memory_passthrough_handler *m_rom_shadow_tap; required_device<palette_device> m_palette; required_device<cpu_device> m_maincpu; @@ -163,18 +160,12 @@ private: required_device<upd765a_device> m_fdc; required_device<floppy_connector> m_floppy0; required_device<floppy_connector> m_floppy1; + required_device<timer_device> m_beep_timer; }; -void amust_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +TIMER_DEVICE_CALLBACK_MEMBER(amust_state::beep_timer) { - switch (id) - { - case TIMER_BEEP_OFF: - m_beep->set_state(0); - break; - default: - throw emu_fatalerror("Unknown id in amust_state::device_timer"); - } + m_beep->set_state(0); } //void amust_state::port00_w(u8 data) @@ -346,7 +337,7 @@ void amust_state::port0a_w(u8 data) if (!BIT(data, 4)) { m_beep->set_state(1); - timer_set(attotime::from_msec(150), TIMER_BEEP_OFF); + m_beep_timer->adjust(attotime::from_msec(150)); } floppy_image_device *floppy = m_floppy0->get_device(); m_fdc->set_floppy(floppy); @@ -480,6 +471,7 @@ void amust_state::amust(machine_config &config) /* sound hardware */ SPEAKER(config, "mono").front_center(); BEEP(config, m_beep, 800).add_route(ALL_OUTPUTS, "mono", 0.50); + TIMER(config, m_beep_timer).configure_generic(FUNC(amust_state::beep_timer)); /* Devices */ hd6845s_device &crtc(HD6845S(config, "crtc", XTAL(14'318'181) / 8)); |