mirror of
https://github.com/holub/mame
synced 2025-04-23 17:00:53 +03:00
irobot.cpp, cedar_magnet_board.cpp: removed timer_set (nw)
This commit is contained in:
parent
015f9dbdda
commit
e2e46aa126
@ -112,6 +112,7 @@ private:
|
||||
int m_ir_ymin;
|
||||
int m_ir_xmax;
|
||||
int m_ir_ymax;
|
||||
emu_timer *m_scanline_timer;
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
|
@ -57,25 +57,33 @@ void cedar_magnet_board_interface::irq_hold()
|
||||
|
||||
void cedar_magnet_board_interface::halt_assert()
|
||||
{
|
||||
device().machine().scheduler().timer_set(attotime::from_usec(2), timer_expired_delegate(FUNC(cedar_magnet_board_interface::halt_assert_callback),this));
|
||||
m_halt_assert_timer->adjust(attotime::from_usec(2));
|
||||
}
|
||||
|
||||
void cedar_magnet_board_interface::halt_clear()
|
||||
{
|
||||
device().machine().scheduler().timer_set(attotime::from_usec(2), timer_expired_delegate(FUNC(cedar_magnet_board_interface::halt_clear_callback),this));
|
||||
m_halt_clear_timer->adjust(attotime::from_usec(2));
|
||||
}
|
||||
|
||||
void cedar_magnet_board_interface::reset_assert()
|
||||
{
|
||||
device().machine().scheduler().timer_set(attotime::from_usec(1), timer_expired_delegate(FUNC(cedar_magnet_board_interface::reset_assert_callback),this));
|
||||
m_reset_assert_timer->adjust(attotime::from_usec(1));
|
||||
}
|
||||
|
||||
void cedar_magnet_board_interface::reset_clear()
|
||||
{
|
||||
device().machine().scheduler().timer_set(attotime::from_usec(1), timer_expired_delegate(FUNC(cedar_magnet_board_interface::reset_clear_callback),this));
|
||||
m_reset_clear_timer->adjust(attotime::from_usec(1));
|
||||
}
|
||||
|
||||
void cedar_magnet_board_interface::interface_pre_reset()
|
||||
{
|
||||
halt_assert();
|
||||
}
|
||||
|
||||
void cedar_magnet_board_interface::interface_pre_start()
|
||||
{
|
||||
m_halt_assert_timer = device().machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cedar_magnet_board_interface::halt_assert_callback), this));
|
||||
m_halt_clear_timer = device().machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cedar_magnet_board_interface::halt_clear_callback), this));
|
||||
m_reset_assert_timer = device().machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cedar_magnet_board_interface::reset_assert_callback), this));
|
||||
m_reset_clear_timer = device().machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cedar_magnet_board_interface::reset_clear_callback), this));
|
||||
}
|
@ -32,6 +32,7 @@ public:
|
||||
|
||||
protected:
|
||||
virtual void interface_pre_reset() override;
|
||||
virtual void interface_pre_start() override;
|
||||
|
||||
virtual TIMER_CALLBACK_MEMBER(reset_assert_callback);
|
||||
|
||||
@ -44,6 +45,10 @@ private:
|
||||
TIMER_CALLBACK_MEMBER(reset_clear_callback);
|
||||
|
||||
bool m_is_running;
|
||||
emu_timer *m_halt_assert_timer;
|
||||
emu_timer *m_halt_clear_timer;
|
||||
emu_timer *m_reset_assert_timer;
|
||||
emu_timer *m_reset_clear_timer;
|
||||
};
|
||||
|
||||
#endif // MAME_MACHINE_CEDAR_MAGNET_BOARD_H
|
||||
|
@ -160,7 +160,7 @@ TIMER_CALLBACK_MEMBER(irobot_state::scanline_callback)
|
||||
/* set a callback for the next 32-scanline increment */
|
||||
scanline += 32;
|
||||
if (scanline >= 256) scanline = 0;
|
||||
machine().scheduler().timer_set(m_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(irobot_state::scanline_callback),this), scanline);
|
||||
m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline);
|
||||
}
|
||||
|
||||
void irobot_state::machine_start()
|
||||
@ -168,6 +168,10 @@ void irobot_state::machine_start()
|
||||
m_leds.resolve();
|
||||
m_vg_clear = 0;
|
||||
m_statwr = 0;
|
||||
|
||||
/* set an initial timer to go off on scanline 0 */
|
||||
m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(irobot_state::scanline_callback), this));
|
||||
m_scanline_timer->adjust(m_screen->time_until_pos(0));
|
||||
}
|
||||
|
||||
void irobot_state::machine_reset()
|
||||
@ -184,9 +188,6 @@ void irobot_state::machine_reset()
|
||||
m_irvg_running = 0;
|
||||
m_irmb_running = 0;
|
||||
|
||||
/* set an initial timer to go off on scanline 0 */
|
||||
machine().scheduler().timer_set(m_screen->time_until_pos(0), timer_expired_delegate(FUNC(irobot_state::scanline_callback),this));
|
||||
|
||||
address_space &space = machine().dummy_space();
|
||||
irobot_rom_banksel_w(space, 0, 0);
|
||||
irobot_out0_w(space, 0, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user