diff options
Diffstat (limited to 'src/devices/bus/isa/isa.h')
-rw-r--r-- | src/devices/bus/isa/isa.h | 57 |
1 files changed, 26 insertions, 31 deletions
diff --git a/src/devices/bus/isa/isa.h b/src/devices/bus/isa/isa.h index 1e9fdaeddfe..4b02d0bf946 100644 --- a/src/devices/bus/isa/isa.h +++ b/src/devices/bus/isa/isa.h @@ -95,7 +95,7 @@ public: protected: isa8_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides + // device_t implementation virtual void device_start() override; // configuration @@ -152,11 +152,16 @@ public: m_iospace->install_device(addrstart, addrend, device, map, unitmask); } void install_bank(offs_t start, offs_t end, uint8_t *data); + void install_bank(offs_t start, offs_t end, memory_bank *bank); void install_rom(device_t *dev, offs_t start, offs_t end, const char *region); template<typename R, typename W> void install_memory(offs_t start, offs_t end, R rhandler, W whandler) { install_space(AS_ISA_MEM, start, end, rhandler, whandler); } + template<typename T> void install_memory(offs_t addrstart, offs_t addrend, T &device, void (T:: *map)(class address_map &map), uint64_t unitmask = ~u64(0)) + { + m_memspace->install_device(addrstart, addrend, device, map, unitmask); + } void unmap_device(offs_t start, offs_t end) const { m_iospace->unmap_readwrite(start, end); } void unmap_bank(offs_t start, offs_t end); @@ -167,16 +172,16 @@ public: // FIXME: shouldn't need to expose this address_space &memspace() const { return *m_memspace; } - DECLARE_WRITE_LINE_MEMBER( irq2_w ); - DECLARE_WRITE_LINE_MEMBER( irq3_w ); - DECLARE_WRITE_LINE_MEMBER( irq4_w ); - DECLARE_WRITE_LINE_MEMBER( irq5_w ); - DECLARE_WRITE_LINE_MEMBER( irq6_w ); - DECLARE_WRITE_LINE_MEMBER( irq7_w ); + void irq2_w(int state); + void irq3_w(int state); + void irq4_w(int state); + void irq5_w(int state); + void irq6_w(int state); + void irq7_w(int state); - DECLARE_WRITE_LINE_MEMBER( drq1_w ); - DECLARE_WRITE_LINE_MEMBER( drq2_w ); - DECLARE_WRITE_LINE_MEMBER( drq3_w ); + void drq1_w(int state); + void drq2_w(int state); + void drq3_w(int state); // 8 bit accessors for ISA-defined address spaces uint8_t mem_r(offs_t offset); @@ -205,7 +210,7 @@ protected: template<typename R, typename W> void install_space(int spacenum, offs_t start, offs_t end, R rhandler, W whandler); - // device-level overrides + // device_t implementation virtual void device_config_complete() override; virtual void device_resolve_objects() override; virtual void device_start() override; @@ -245,13 +250,10 @@ DECLARE_DEVICE_TYPE(ISA8, isa8_device) class device_isa8_card_interface : public device_interface { friend class isa8_device; - template <class ElementType> friend class simple_list; public: // construction/destruction virtual ~device_isa8_card_interface(); - device_isa8_card_interface *next() const { return m_next; } - void set_isa_device(); // configuration access virtual uint8_t dack_r(int line); @@ -269,9 +271,6 @@ public: isa8_device *m_isa; device_t *m_isa_dev; - -private: - device_isa8_card_interface *m_next; }; class isa16_device; @@ -293,7 +292,7 @@ public: isa16_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: - // device-level overrides + // device_t implementation virtual void device_start() override; }; @@ -323,16 +322,16 @@ public: // for ISA16, put the 16-bit configs in the primary slots and the 8-bit configs in the secondary virtual space_config_vector memory_space_config() const override; - DECLARE_WRITE_LINE_MEMBER( irq10_w ); - DECLARE_WRITE_LINE_MEMBER( irq11_w ); - DECLARE_WRITE_LINE_MEMBER( irq12_w ); - DECLARE_WRITE_LINE_MEMBER( irq14_w ); - DECLARE_WRITE_LINE_MEMBER( irq15_w ); + void irq10_w(int state); + void irq11_w(int state); + void irq12_w(int state); + void irq14_w(int state); + void irq15_w(int state); - DECLARE_WRITE_LINE_MEMBER( drq0_w ); - DECLARE_WRITE_LINE_MEMBER( drq5_w ); - DECLARE_WRITE_LINE_MEMBER( drq6_w ); - DECLARE_WRITE_LINE_MEMBER( drq7_w ); + void drq0_w(int state); + void drq5_w(int state); + void drq6_w(int state); + void drq7_w(int state); uint16_t dack16_r(int line); void dack16_w(int line, uint16_t data); @@ -349,10 +348,6 @@ public: uint16_t io16_swap_r(offs_t offset, uint16_t mem_mask = 0xffff); void io16_swap_w(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff); -protected: - // device-level overrides - virtual void device_start() override; - private: // internal state devcb_write_line m_out_irq10_cb; |