diff options
author | 2014-03-20 17:47:52 +0000 | |
---|---|---|
committer | 2014-03-20 17:47:52 +0000 | |
commit | ab67a5857994586e5e5f31546adedf5c9dbd68a4 (patch) | |
tree | c13c10e988118639ed601f7831445e1e52b03611 /src/emu/video/crt9212.h | |
parent | 717268b6c9708a647b884dbed3186701661e8e86 (diff) |
Converted crt9212_device to devcb2 (nw)
Diffstat (limited to 'src/emu/video/crt9212.h')
-rw-r--r-- | src/emu/video/crt9212.h | 50 |
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]; |