summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/s2650/s2650.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/s2650/s2650.h')
-rw-r--r--src/emu/cpu/s2650/s2650.h9
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) */