diff options
Diffstat (limited to 'src/devices/machine/genpc.cpp')
-rw-r--r-- | src/devices/machine/genpc.cpp | 60 |
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 |