summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/dm9368.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/video/dm9368.h')
-rw-r--r--src/devices/video/dm9368.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/devices/video/dm9368.h b/src/devices/video/dm9368.h
index ba628da64fc..05e7fbb170f 100644
--- a/src/devices/video/dm9368.h
+++ b/src/devices/video/dm9368.h
@@ -22,16 +22,17 @@
#pragma once
-#include "dioutput.h"
-
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
-#define MCFG_DM9368_RBO_CALLBACK(_write) \
- devcb = &dm9368_device::set_rbo_wr_callback(*device, DEVCB_##_read);
+#define MCFG_DM9368_UPDATE_CALLBACK(cb) \
+ devcb = &downcast<dm9368_device &>(*device).set_update_callback(DEVCB_##cb);
+
+#define MCFG_DM9368_RBO_CALLBACK(cb) \
+ devcb = &downcast<dm9368_device &>(*device).set_rbo_callback(DEVCB_##cb);
@@ -41,29 +42,35 @@
// ======================> dm9368_device
-class dm9368_device : public device_t,
- public device_output_interface
+class dm9368_device : public device_t
{
public:
+ template <typename Obj> devcb_base &set_update_callback(Obj &&cb) { return m_update_cb.set_callback(std::forward<Obj>(cb)); }
+ template <typename Obj> devcb_base &set_rbo_callback(Obj &&cb) { return m_rbo_cb.set_callback(std::forward<Obj>(cb)); }
+
// construction/destruction
- dm9368_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ dm9368_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
- void a_w(uint8_t data);
+ void a_w(u8 data);
DECLARE_WRITE_LINE_MEMBER( rbi_w ) { m_rbi = state; }
DECLARE_READ_LINE_MEMBER( rbo_r ) { return m_rbo; }
protected:
// device-level overrides
+ virtual void device_resolve_objects() override;
virtual void device_start() override;
+ void update();
+
private:
- devcb_write_line m_write_rbo;
+ devcb_write8 m_update_cb;
+ devcb_write_line m_rbo_cb;
int m_rbi;
int m_rbo;
- static const uint8_t s_segment_data[16];
+ static const u8 s_segment_data[16];
};