summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/video/crt9212.h
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2014-03-20 17:47:52 +0000
committer Ivan Vangelista <mesgnet@yahoo.it>2014-03-20 17:47:52 +0000
commitab67a5857994586e5e5f31546adedf5c9dbd68a4 (patch)
treec13c10e988118639ed601f7831445e1e52b03611 /src/emu/video/crt9212.h
parent717268b6c9708a647b884dbed3186701661e8e86 (diff)
Converted crt9212_device to devcb2 (nw)
Diffstat (limited to 'src/emu/video/crt9212.h')
-rw-r--r--src/emu/video/crt9212.h50
1 files changed, 23 insertions, 27 deletions
diff --git a/src/emu/video/crt9212.h b/src/emu/video/crt9212.h
index 12d55b0c8be..57cda052dc4 100644
--- a/src/emu/video/crt9212.h
+++ b/src/emu/video/crt9212.h
@@ -47,42 +47,39 @@ const int CRT9212_RAM_SIZE = 135;
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
-#define MCFG_CRT9212_ADD(_tag, _config) \
- MCFG_DEVICE_ADD(_tag, CRT9212, 0) \
- MCFG_DEVICE_CONFIG(_config)
+#define MCFG_CRT9212_OUT_ROF_CB(_devcb) \
+ devcb = &crt9212_device::set_out_rof_callback(*device, DEVCB2_##_devcb);
+#define MCFG_CRT9212_OUT_WOF_CB(_devcb) \
+ devcb = &crt9212_device::set_out_wof_callback(*device, DEVCB2_##_devcb);
+
+#define MCFG_CRT9212_IN_REN_CB(_devcb) \
+ devcb = &crt9212_device::set_in_ren_callback(*device, DEVCB2_##_devcb);
-#define CRT9212_INTERFACE(name) \
- const crt9212_interface (name) =
+#define MCFG_CRT9212_IN_WEN_CB(_devcb) \
+ devcb = &crt9212_device::set_in_wen_callback(*device, DEVCB2_##_devcb);
+#define MCFG_CRT9212_IN_WEN2_CB(_devcb) \
+ devcb = &crt9212_device::set_in_wen2_callback(*device, DEVCB2_##_devcb);
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
-
-// ======================> crt9212_interface
-
-struct crt9212_interface
-{
- devcb_write_line m_out_rof_cb;
- devcb_write_line m_out_wof_cb;
- devcb_read_line m_in_ren_cb;
- devcb_read_line m_in_wen_cb;
- devcb_read_line m_in_wen2_cb;
-};
-
-
-
// ======================> crt9212_device
-class crt9212_device : public device_t,
- public crt9212_interface
+class crt9212_device : public device_t
{
public:
// construction/destruction
crt9212_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ template<class _Object> static devcb2_base &set_out_rof_callback(device_t &device, _Object object) { return downcast<crt9212_device &>(device).m_out_rof_cb.set_callback(object); }
+ template<class _Object> static devcb2_base &set_out_wof_callback(device_t &device, _Object object) { return downcast<crt9212_device &>(device).m_out_wof_cb.set_callback(object); }
+ template<class _Object> static devcb2_base &set_in_ren_callback(device_t &device, _Object object) { return downcast<crt9212_device &>(device).m_in_ren_cb.set_callback(object); }
+ template<class _Object> static devcb2_base &set_in_wen_callback(device_t &device, _Object object) { return downcast<crt9212_device &>(device).m_in_wen_cb.set_callback(object); }
+ template<class _Object> static devcb2_base &set_in_wen2_callback(device_t &device, _Object object) { return downcast<crt9212_device &>(device).m_in_wen2_cb.set_callback(object); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
@@ -93,15 +90,14 @@ public:
protected:
// device-level overrides
- virtual void device_config_complete();
virtual void device_start();
private:
- devcb_resolved_write_line m_out_rof_func;
- devcb_resolved_write_line m_out_wof_func;
- devcb_resolved_read_line m_in_ren_func;
- devcb_resolved_read_line m_in_wen_func;
- devcb_resolved_read_line m_in_wen2_func;
+ devcb2_write_line m_out_rof_cb;
+ devcb2_write_line m_out_wof_cb;
+ devcb2_read_line m_in_ren_cb;
+ devcb2_read_line m_in_wen_cb;
+ devcb2_read_line m_in_wen2_cb;
UINT8 m_ram[CRT9212_RAM_SIZE][2];