diff options
Diffstat (limited to 'src/emu/cpu/s2650/s2650.h')
-rw-r--r-- | src/emu/cpu/s2650/s2650.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/emu/cpu/s2650/s2650.h b/src/emu/cpu/s2650/s2650.h index 1ba21d8fcc5..9137324ce11 100644 --- a/src/emu/cpu/s2650/s2650.h +++ b/src/emu/cpu/s2650/s2650.h @@ -18,13 +18,15 @@ enum S2650_CTRL_PORT = 0x0100, /* M/~IO=0 D/~C=0 E/~NE=0 */ S2650_DATA_PORT = 0x0101, /* M/~IO=0 D/~C=1 E/~NE=0 */ S2650_SENSE_PORT = 0x0102, /* Fake Sense Line */ - S2650_FO_PORT = 0x0103 /* Fake FO Line */ }; extern const device_type S2650; +#define MCFG_S2650_FLAG_HANDLER(_devcb) \ + devcb = &s2650_device::set_flag_handler(*device, DEVCB2_##_devcb); + class s2650_device : public cpu_device { public: @@ -33,6 +35,9 @@ public: DECLARE_WRITE_LINE_MEMBER(write_sense); + // static configuration helpers + template<class _Object> static devcb2_base &set_flag_handler(device_t &device, _Object object) { return downcast<s2650_device &>(device).m_flag_handler.set_callback(object); } + protected: // device-level overrides virtual void device_start(); @@ -66,6 +71,8 @@ private: address_space_config m_program_config; address_space_config m_io_config; + devcb2_write_line m_flag_handler; + UINT16 m_ppc; /* previous program counter (page + iar) */ UINT16 m_page; /* 8K page select register (A14..A13) */ UINT16 m_iar; /* instruction address register (A12..A0) */ |