mirror of
https://github.com/holub/mame
synced 2025-10-07 01:16:22 +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_ymin;
|
||||||
int m_ir_xmax;
|
int m_ir_xmax;
|
||||||
int m_ir_ymax;
|
int m_ir_ymax;
|
||||||
|
emu_timer *m_scanline_timer;
|
||||||
|
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
required_device<gfxdecode_device> m_gfxdecode;
|
required_device<gfxdecode_device> m_gfxdecode;
|
||||||
|
@ -57,25 +57,33 @@ void cedar_magnet_board_interface::irq_hold()
|
|||||||
|
|
||||||
void cedar_magnet_board_interface::halt_assert()
|
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()
|
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()
|
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()
|
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()
|
void cedar_magnet_board_interface::interface_pre_reset()
|
||||||
{
|
{
|
||||||
halt_assert();
|
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:
|
protected:
|
||||||
virtual void interface_pre_reset() override;
|
virtual void interface_pre_reset() override;
|
||||||
|
virtual void interface_pre_start() override;
|
||||||
|
|
||||||
virtual TIMER_CALLBACK_MEMBER(reset_assert_callback);
|
virtual TIMER_CALLBACK_MEMBER(reset_assert_callback);
|
||||||
|
|
||||||
@ -44,6 +45,10 @@ private:
|
|||||||
TIMER_CALLBACK_MEMBER(reset_clear_callback);
|
TIMER_CALLBACK_MEMBER(reset_clear_callback);
|
||||||
|
|
||||||
bool m_is_running;
|
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
|
#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 */
|
/* set a callback for the next 32-scanline increment */
|
||||||
scanline += 32;
|
scanline += 32;
|
||||||
if (scanline >= 256) scanline = 0;
|
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()
|
void irobot_state::machine_start()
|
||||||
@ -168,6 +168,10 @@ void irobot_state::machine_start()
|
|||||||
m_leds.resolve();
|
m_leds.resolve();
|
||||||
m_vg_clear = 0;
|
m_vg_clear = 0;
|
||||||
m_statwr = 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()
|
void irobot_state::machine_reset()
|
||||||
@ -184,9 +188,6 @@ void irobot_state::machine_reset()
|
|||||||
m_irvg_running = 0;
|
m_irvg_running = 0;
|
||||||
m_irmb_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();
|
address_space &space = machine().dummy_space();
|
||||||
irobot_rom_banksel_w(space, 0, 0);
|
irobot_rom_banksel_w(space, 0, 0);
|
||||||
irobot_out0_w(space, 0, 0);
|
irobot_out0_w(space, 0, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user