mirror of
https://github.com/holub/mame
synced 2025-07-04 17:38:08 +03:00
multibus : Add interrupt lines to multibus slot device (nw) (#6359)
* multibus : Add interrupt lines to slot device (nw) * oops (nw)
This commit is contained in:
parent
062c11bc9d
commit
fa1ced3e6c
@ -18,6 +18,8 @@ DEFINE_DEVICE_TYPE(MULTIBUS_SLOT, multibus_slot_device, "multibus_slot", "Intel
|
|||||||
multibus_slot_device::multibus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
multibus_slot_device::multibus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||||
: device_t(mconfig , MULTIBUS_SLOT , tag , owner , clock)
|
: device_t(mconfig , MULTIBUS_SLOT , tag , owner , clock)
|
||||||
, device_single_card_slot_interface<device_multibus_interface>(mconfig , *this)
|
, device_single_card_slot_interface<device_multibus_interface>(mconfig , *this)
|
||||||
|
, m_irq_cb(*this)
|
||||||
|
, m_irqa_cb(*this)
|
||||||
{
|
{
|
||||||
option_reset();
|
option_reset();
|
||||||
option_add("isbc202" , ISBC202);
|
option_add("isbc202" , ISBC202);
|
||||||
@ -47,6 +49,8 @@ void multibus_slot_device::install_mem_rw(address_space& space)
|
|||||||
|
|
||||||
void multibus_slot_device::device_start()
|
void multibus_slot_device::device_start()
|
||||||
{
|
{
|
||||||
|
m_irq_cb.resolve_all_safe();
|
||||||
|
m_irqa_cb.resolve_safe();
|
||||||
}
|
}
|
||||||
|
|
||||||
device_multibus_interface::device_multibus_interface(const machine_config &mconfig , device_t &device)
|
device_multibus_interface::device_multibus_interface(const machine_config &mconfig , device_t &device)
|
||||||
@ -57,3 +61,13 @@ device_multibus_interface::device_multibus_interface(const machine_config &mconf
|
|||||||
device_multibus_interface::~device_multibus_interface()
|
device_multibus_interface::~device_multibus_interface()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WRITE_LINE_MEMBER( multibus_slot_device::irq0_w ) { m_irq_cb[0](state); }
|
||||||
|
WRITE_LINE_MEMBER( multibus_slot_device::irq1_w ) { m_irq_cb[1](state); }
|
||||||
|
WRITE_LINE_MEMBER( multibus_slot_device::irq2_w ) { m_irq_cb[2](state); }
|
||||||
|
WRITE_LINE_MEMBER( multibus_slot_device::irq3_w ) { m_irq_cb[3](state); }
|
||||||
|
WRITE_LINE_MEMBER( multibus_slot_device::irq4_w ) { m_irq_cb[4](state); }
|
||||||
|
WRITE_LINE_MEMBER( multibus_slot_device::irq5_w ) { m_irq_cb[5](state); }
|
||||||
|
WRITE_LINE_MEMBER( multibus_slot_device::irq6_w ) { m_irq_cb[6](state); }
|
||||||
|
WRITE_LINE_MEMBER( multibus_slot_device::irq7_w ) { m_irq_cb[7](state); }
|
||||||
|
WRITE_LINE_MEMBER( multibus_slot_device::irqa_w ) { m_irqa_cb(state); }
|
||||||
|
@ -6,6 +6,69 @@
|
|||||||
|
|
||||||
Intel Multibus
|
Intel Multibus
|
||||||
|
|
||||||
|
P1 Multibus connector:
|
||||||
|
|
||||||
|
Power supplies
|
||||||
|
1 GND 2 GND
|
||||||
|
3 +5Vdc 4 +5Vdc
|
||||||
|
5 +5Vdc 6 +5Vdc
|
||||||
|
7 +12Vdc 8 +12Vdc
|
||||||
|
9 -5Vdc 10 -5Vdc
|
||||||
|
11 GND 12 GND
|
||||||
|
Bus controls
|
||||||
|
13 BCLK/ 14 INIT/
|
||||||
|
15 BPRN/ 16 BPRO/
|
||||||
|
17 BUSY/ 18 BREQ/
|
||||||
|
19 MRDC/ 20 MWTC/
|
||||||
|
21 IORC/ 22 IOWC/
|
||||||
|
23 XACK/ 24 INH1/
|
||||||
|
Bus controls and address
|
||||||
|
25 LOCK/ 26 INH2/
|
||||||
|
27 BHEN/ 28 ADR10/
|
||||||
|
29 CBRQ/ 30 ADR11/
|
||||||
|
31 CCLK/ 32 ADR12/
|
||||||
|
33 INTA/ 34 ADR13/
|
||||||
|
Interrupts
|
||||||
|
35 INT6/ 36 INT7/
|
||||||
|
37 INT4/ 38 INT5/
|
||||||
|
39 INT2/ 40 INT3/
|
||||||
|
41 INT0/ 42 INT1/
|
||||||
|
Address
|
||||||
|
43 ADRE/ 44 ADRF/
|
||||||
|
45 ADRC/ 46 ADRD/
|
||||||
|
47 ADRA/ 48 ADRB/
|
||||||
|
49 ADR8/ 50 ADR9/
|
||||||
|
51 ADR6/ 52 ADR7/
|
||||||
|
53 ADR4/ 54 ADR5/
|
||||||
|
55 ADR2/ 56 ADR3/
|
||||||
|
57 ADR0/ 58 ADR1/
|
||||||
|
Data
|
||||||
|
59 DATE/ 60 DATF/
|
||||||
|
61 DATC/ 62 DATD/
|
||||||
|
63 DATA/ 64 DATB/
|
||||||
|
65 DAT8/ 66 DAT9/
|
||||||
|
67 DAT6/ 68 DAT7/
|
||||||
|
69 DAT4/ 70 DAT5/
|
||||||
|
71 DAT2/ 72 DAT3/
|
||||||
|
73 DAT0/ 74 DAT1/
|
||||||
|
Power supplies
|
||||||
|
75 GND 76 GND
|
||||||
|
77 reserved 78 reserved
|
||||||
|
79 -12Vdc 80 -12Vdc
|
||||||
|
81 +5Vdc 82 +5Vdc
|
||||||
|
83 +5Vdc 84 +5Vdc
|
||||||
|
85 GND 86 GND
|
||||||
|
|
||||||
|
P2 Multibus connector:
|
||||||
|
|
||||||
|
1-54 reserved for iLBX bus
|
||||||
|
|
||||||
|
Address
|
||||||
|
55 ADR16/ 56 ADR17/
|
||||||
|
57 ADR14/ 58 ADR15/
|
||||||
|
|
||||||
|
59-60 reserved for iLBx bus
|
||||||
|
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
#ifndef MAME_BUS_MULTIBUS_MULTIBUS_H
|
#ifndef MAME_BUS_MULTIBUS_MULTIBUS_H
|
||||||
@ -30,8 +93,32 @@ public:
|
|||||||
// Set memory space
|
// Set memory space
|
||||||
void install_mem_rw(address_space& space);
|
void install_mem_rw(address_space& space);
|
||||||
|
|
||||||
|
auto irq0_callback() { return m_irq_cb[0].bind(); }
|
||||||
|
auto irq1_callback() { return m_irq_cb[1].bind(); }
|
||||||
|
auto irq2_callback() { return m_irq_cb[2].bind(); }
|
||||||
|
auto irq3_callback() { return m_irq_cb[3].bind(); }
|
||||||
|
auto irq4_callback() { return m_irq_cb[4].bind(); }
|
||||||
|
auto irq5_callback() { return m_irq_cb[5].bind(); }
|
||||||
|
auto irq6_callback() { return m_irq_cb[6].bind(); }
|
||||||
|
auto irq7_callback() { return m_irq_cb[7].bind(); }
|
||||||
|
auto irqa_callback() { return m_irqa_cb.bind(); }
|
||||||
|
|
||||||
|
DECLARE_WRITE_LINE_MEMBER( irq0_w );
|
||||||
|
DECLARE_WRITE_LINE_MEMBER( irq1_w );
|
||||||
|
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 );
|
||||||
|
DECLARE_WRITE_LINE_MEMBER( irqa_w );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void device_start() override;
|
virtual void device_start() override;
|
||||||
|
|
||||||
|
devcb_write_line::array<8> m_irq_cb;
|
||||||
|
devcb_write_line m_irqa_cb;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class device_multibus_interface : public device_interface
|
class device_multibus_interface : public device_interface
|
||||||
|
Loading…
Reference in New Issue
Block a user