summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/isa/isa.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/isa/isa.h')
-rw-r--r--src/devices/bus/isa/isa.h57
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;