diff options
Diffstat (limited to 'src/devices/machine/i8087.h')
-rw-r--r-- | src/devices/machine/i8087.h | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/devices/machine/i8087.h b/src/devices/machine/i8087.h index 290b9a95b16..9344ca2e68e 100644 --- a/src/devices/machine/i8087.h +++ b/src/devices/machine/i8087.h @@ -10,12 +10,12 @@ DECLARE_DEVICE_TYPE(I8087, i8087_device) -class i8087_device : public device_t, - public device_memory_interface +class i8087_device : public device_t { public: i8087_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - void set_data_width(u8 data_width) { m_data_width = data_width; } + template <class Object> void set_space_88(Object &&tag, int spacenum) { m_space.set_tag(std::forward<Object>(tag), spacenum); m_space.set_data_width(8); } + template <class Object> void set_space_86(Object &&tag, int spacenum) { m_space.set_tag(std::forward<Object>(tag), spacenum); m_space.set_data_width(16); } auto irq() { return m_int_handler.bind(); } auto busy() { return m_busy_handler.bind(); } @@ -26,13 +26,13 @@ protected: i8087_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); virtual void device_start() override; virtual void device_reset() override; - virtual void device_config_complete() override; - virtual space_config_vector memory_space_config() const override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; private: + address_space &space() { return *m_space; } + typedef void (i8087_device::*x87_func)(u8 modrm); - address_space_config m_space_config; + required_address_space m_space; devcb_write_line m_int_handler; devcb_write_line m_busy_handler; emu_timer *m_timer; @@ -45,7 +45,6 @@ private: u16 m_cw; u16 m_sw; u16 m_tw; - int m_data_width; int m_icount; x87_func m_opcode_table_d8[256]; |