diff options
Diffstat (limited to 'src/devices/machine/ldpr8210.h')
-rw-r--r-- | src/devices/machine/ldpr8210.h | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/src/devices/machine/ldpr8210.h b/src/devices/machine/ldpr8210.h index 217159e0cd1..4bc4615c03c 100644 --- a/src/devices/machine/ldpr8210.h +++ b/src/devices/machine/ldpr8210.h @@ -44,20 +44,11 @@ public: void control_w(uint8_t data); protected: - // timer IDs - enum - { - TID_VSYNC_OFF = TID_FIRST_PLAYER_TIMER, - TID_VBI_DATA_FETCH, - TID_FIRST_SUBCLASS_TIMER - }; - pioneer_pr8210_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual const tiny_rom_entry *device_rom_region() const override; virtual void device_add_mconfig(machine_config &config) override; @@ -67,6 +58,8 @@ protected: virtual void player_overlay(bitmap_yuy16 &bitmap) override; // internal helpers + TIMER_CALLBACK_MEMBER(process_vbi_data); + TIMER_CALLBACK_MEMBER(vsync_off); bool focus_on() const { return !(m_i8049_port1 & 0x08); } bool spdl_on() const { return !(m_i8049_port1 & 0x10); } bool laser_on() const { return !(m_i8049_port2 & 0x01); } @@ -115,6 +108,10 @@ protected: output_finder<> m_pause; output_finder<> m_standby; + // timers + emu_timer *m_process_vbi_timer; + emu_timer *m_vsync_off_timer; + // internal state uint8_t m_control; // control line state uint8_t m_lastcommand; // last command seen @@ -153,20 +150,12 @@ public: void set_external_audio_squelch(int state); protected: - // timer IDs - enum - { - TID_IRQ_OFF = TID_FIRST_SUBCLASS_TIMER, - TID_LATCH_DATA - }; - // subclass overrides virtual void player_vsync(const vbi_metadata &vbi, int fieldnum, const attotime &curtime) override; // device-level overrides virtual void device_start() override; virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; virtual const tiny_rom_entry *device_rom_region() const override; virtual void device_add_mconfig(machine_config &config) override; @@ -175,6 +164,9 @@ protected: virtual void update_audio_squelch() override { set_audio_squelch(m_audio_squelch, m_audio_squelch); } private: + TIMER_CALLBACK_MEMBER(irq_off); + TIMER_CALLBACK_MEMBER(latch_data); + // internal read/write handlers uint8_t i8748_data_r(); uint8_t i8748_port2_r(); @@ -185,10 +177,12 @@ private: // internal state required_device<i8748_device> m_i8748_cpu; - uint8_t m_audio_squelch; // audio squelch value + emu_timer *m_irq_off_timer; + emu_timer *m_latch_data_timer; + uint8_t m_audio_squelch; // audio squelch value uint8_t m_data; // parallel data for simutrek - bool m_data_ready; // ready flag for simutrek data - uint8_t m_i8748_port2; // 8748 port 2 state + bool m_data_ready; // ready flag for simutrek data + uint8_t m_i8748_port2; // 8748 port 2 state uint8_t m_controlnext; // latch to control next pair of fields uint8_t m_controlthis; // latched value for our control over the current pair of fields }; |