summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/ldpr8210.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/ldpr8210.h')
-rw-r--r--src/devices/machine/ldpr8210.h34
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
};