summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/genpc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/genpc.cpp')
-rw-r--r--src/devices/machine/genpc.cpp60
1 files changed, 23 insertions, 37 deletions
diff --git a/src/devices/machine/genpc.cpp b/src/devices/machine/genpc.cpp
index e626bf96b30..269c1915bb0 100644
--- a/src/devices/machine/genpc.cpp
+++ b/src/devices/machine/genpc.cpp
@@ -135,8 +135,6 @@ WRITE_LINE_MEMBER( ibm5160_mb_device::pc_dma8237_out_eop )
void ibm5160_mb_device::pc_select_dma_channel(int channel, bool state)
{
- m_isabus->dack_line_w(channel, state);
-
if(!state) {
m_dma_channel = channel;
if(m_cur_eop)
@@ -395,16 +393,8 @@ WRITE8_MEMBER( ibm5160_mb_device::pc_ppi_portb_w )
WRITE8_MEMBER( ibm5160_mb_device::nmi_enable_w )
{
m_nmi_enabled = BIT(data,7);
- if (!m_nmi_enabled)
- m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
-}
-
-WRITE_LINE_MEMBER( ibm5160_mb_device::iochck_w )
-{
- if (m_nmi_enabled && !state)
- m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
+ m_isabus->set_nmi_state(m_nmi_enabled);
}
-
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
@@ -420,9 +410,8 @@ DEFINE_DEVICE_TYPE(IBM5160_MOTHERBOARD, ibm5160_mb_device, "ibm5160_mb", "IBM 51
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void ibm5160_mb_device::device_add_mconfig(machine_config &config)
-{
- PIT8253(config, m_pit8253);
+MACHINE_CONFIG_START(ibm5160_mb_device::device_add_mconfig)
+ PIT8253(config, m_pit8253, 0);
m_pit8253->set_clk<0>(XTAL(14'318'181)/12.0); // heartbeat IRQ
m_pit8253->out_handler<0>().set(m_pic8259, FUNC(pic8259_device::ir0_w));
m_pit8253->set_clk<1>(XTAL(14'318'181)/12.0); // DRAM refresh
@@ -447,7 +436,7 @@ void ibm5160_mb_device::device_add_mconfig(machine_config &config)
m_dma8237->out_dack_callback<2>().set(FUNC(ibm5160_mb_device::pc_dack2_w));
m_dma8237->out_dack_callback<3>().set(FUNC(ibm5160_mb_device::pc_dack3_w));
- PIC8259(config, m_pic8259);
+ PIC8259(config, m_pic8259, 0);
m_pic8259->out_int_callback().set(FUNC(ibm5160_mb_device::pic_int_w));
I8255A(config, m_ppi8255, 0);
@@ -456,8 +445,7 @@ void ibm5160_mb_device::device_add_mconfig(machine_config &config)
m_ppi8255->in_pc_callback().set(FUNC(ibm5160_mb_device::pc_ppi_portc_r));
ISA8(config, m_isabus, 0);
- m_isabus->set_memspace(":maincpu", AS_PROGRAM);
- m_isabus->set_iospace(":maincpu", AS_IO);
+ m_isabus->set_cputag(":maincpu");
m_isabus->irq2_callback().set(m_pic8259, FUNC(pic8259_device::ir2_w));
m_isabus->irq3_callback().set(m_pic8259, FUNC(pic8259_device::ir3_w));
m_isabus->irq4_callback().set(m_pic8259, FUNC(pic8259_device::ir4_w));
@@ -467,16 +455,15 @@ void ibm5160_mb_device::device_add_mconfig(machine_config &config)
m_isabus->drq1_callback().set(m_dma8237, FUNC(am9517a_device::dreq1_w));
m_isabus->drq2_callback().set(m_dma8237, FUNC(am9517a_device::dreq2_w));
m_isabus->drq3_callback().set(m_dma8237, FUNC(am9517a_device::dreq3_w));
- m_isabus->iochck_callback().set(FUNC(ibm5160_mb_device::iochck_w));
- PC_KBDC(config, m_pc_kbdc, 0);
- m_pc_kbdc->out_clock_cb().set(FUNC(ibm5160_mb_device::keyboard_clock_w));
- m_pc_kbdc->out_data_cb().set(FUNC(ibm5160_mb_device::keyboard_data_w));
+ MCFG_DEVICE_ADD("pc_kbdc", PC_KBDC, 0)
+ MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE(*this, ibm5160_mb_device, keyboard_clock_w))
+ MCFG_PC_KBDC_OUT_DATA_CB(WRITELINE(*this, ibm5160_mb_device, keyboard_data_w))
/* sound hardware */
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00);
-}
+MACHINE_CONFIG_END
static INPUT_PORTS_START( ibm5160_mb )
@@ -608,18 +595,18 @@ DEFINE_DEVICE_TYPE(IBM5150_MOTHERBOARD, ibm5150_mb_device, "ibm5150_mb", "IBM 51
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void ibm5150_mb_device::device_add_mconfig(machine_config &config)
-{
+MACHINE_CONFIG_START(ibm5150_mb_device::device_add_mconfig)
ibm5160_mb_device::device_add_mconfig(config);
- subdevice<pc_kbdc_device>("pc_kbdc")->out_clock_cb().set(FUNC(ibm5150_mb_device::keyboard_clock_w));
+ MCFG_DEVICE_MODIFY("pc_kbdc")
+ MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE(*this, ibm5150_mb_device, keyboard_clock_w))
m_ppi8255->out_pb_callback().set(FUNC(ibm5150_mb_device::pc_ppi_portb_w));
m_ppi8255->in_pc_callback().set(FUNC(ibm5150_mb_device::pc_ppi_portc_r));
- CASSETTE(config, m_cassette);
- m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED);
-}
+ MCFG_CASSETTE_ADD( "cassette" )
+ MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
+MACHINE_CONFIG_END
//**************************************************************************
// LIVE DEVICE
@@ -785,15 +772,15 @@ DEFINE_DEVICE_TYPE(EC1841_MOTHERBOARD, ec1841_mb_device, "ec1841_mb", "EC-1840 m
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void ec1841_mb_device::device_add_mconfig(machine_config &config)
-{
+MACHINE_CONFIG_START(ec1841_mb_device::device_add_mconfig)
ibm5160_mb_device::device_add_mconfig(config);
m_ppi8255->out_pb_callback().set(FUNC(ec1841_mb_device::pc_ppi_portb_w));
m_ppi8255->in_pc_callback().set(FUNC(ec1841_mb_device::pc_ppi_portc_r));
- subdevice<pc_kbdc_device>("pc_kbdc")->out_clock_cb().set(FUNC(ec1841_mb_device::keyboard_clock_w));
-}
+ MCFG_DEVICE_MODIFY("pc_kbdc")
+ MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE(*this, ec1841_mb_device, keyboard_clock_w))
+MACHINE_CONFIG_END
static INPUT_PORTS_START( ec1841_mb )
PORT_START("DSW0") /* SA1 */
@@ -911,13 +898,12 @@ pc_noppi_mb_device::pc_noppi_mb_device(const machine_config &mconfig, device_typ
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void pc_noppi_mb_device::device_add_mconfig(machine_config &config)
-{
+MACHINE_CONFIG_START(pc_noppi_mb_device::device_add_mconfig)
ibm5160_mb_device::device_add_mconfig(config);
- config.device_remove("pc_kbdc");
- config.device_remove("ppi8255");
-}
+ MCFG_DEVICE_REMOVE("pc_kbdc")
+ MCFG_DEVICE_REMOVE("ppi8255")
+MACHINE_CONFIG_END
static INPUT_PORTS_START( pc_noppi_mb )
INPUT_PORTS_END