diff options
Diffstat (limited to 'src/mame/drivers/isbc8030.cpp')
-rw-r--r-- | src/mame/drivers/isbc8030.cpp | 74 |
1 files changed, 34 insertions, 40 deletions
diff --git a/src/mame/drivers/isbc8030.cpp b/src/mame/drivers/isbc8030.cpp index 0cb5c28371f..4f7cc6d2ed6 100644 --- a/src/mame/drivers/isbc8030.cpp +++ b/src/mame/drivers/isbc8030.cpp @@ -37,12 +37,6 @@ X Examine and modify CPU registers #include "machine/i8251.h" #include "bus/rs232/rs232.h" -#define I8259A_TAG "pic8259" -#define I8253_TAG "pit8253" -#define I8255A_TAG "ppi8255" -#define I8251A_TAG "usart" -#define I8251A_BAUD_TAG "usart_baud" -#define RS232_TAG "rs232" class isbc8030_state : public driver_device { @@ -50,11 +44,11 @@ public: isbc8030_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") - , m_usart(*this, I8251A_TAG) - , m_ppi(*this, I8255A_TAG) - , m_pic(*this, I8259A_TAG) - , m_pit(*this, I8253_TAG) - , m_rs232(*this, RS232_TAG) + , m_usart(*this, "usart") + , m_ppi(*this, "ppi8255") + , m_pic(*this, "pic8259") + , m_pit(*this, "pit8253") + , m_rs232(*this, "rs232") { } void isbc8030(machine_config &config); @@ -92,35 +86,35 @@ void isbc8030_state::isbc8030_io(address_map &map) static INPUT_PORTS_START( isbc8030 ) INPUT_PORTS_END -MACHINE_CONFIG_START(isbc8030_state::isbc8030) - /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8085A, XTAL(22'118'400) / 4) - MCFG_DEVICE_PROGRAM_MAP(isbc8030_mem) - MCFG_DEVICE_IO_MAP(isbc8030_io) - - MCFG_DEVICE_ADD(I8259A_TAG, PIC8259, 0) - MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) - - MCFG_DEVICE_ADD(I8253_TAG, PIT8253, 0) - MCFG_PIT8253_CLK0(XTAL(22'118'400) / 18) - MCFG_PIT8253_OUT0_HANDLER(WRITELINE(I8259A_TAG, pic8259_device, ir0_w)) - MCFG_PIT8253_CLK1(XTAL(22'118'400) / 18) - MCFG_PIT8253_CLK2(XTAL(22'118'400) / 18) - MCFG_PIT8253_OUT2_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_rxc)) - MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(I8251A_TAG, i8251_device, write_txc)) - - MCFG_DEVICE_ADD(I8251A_TAG, I8251, 0) - MCFG_I8251_TXD_HANDLER(WRITELINE(RS232_TAG, rs232_port_device, write_txd)) - MCFG_I8251_DTR_HANDLER(WRITELINE(RS232_TAG, rs232_port_device, write_dtr)) - MCFG_I8251_RTS_HANDLER(WRITELINE(RS232_TAG, rs232_port_device, write_rts)) - - MCFG_DEVICE_ADD(I8255A_TAG, I8255A, 0) - - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_cts)) -MACHINE_CONFIG_END +void isbc8030_state::isbc8030(machine_config &config) +{ + I8085A(config, m_maincpu, XTAL(22'118'400) / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &isbc8030_state::isbc8030_mem); + m_maincpu->set_addrmap(AS_IO, &isbc8030_state::isbc8030_io); + + PIC8259(config, m_pic, 0); + m_pic->out_int_callback().set_inputline(m_maincpu, 0); + + PIT8253(config, m_pit, 0); + m_pit->set_clk<0>(XTAL(22'118'400) / 18); + m_pit->out_handler<0>().set(m_pic, FUNC(pic8259_device::ir0_w)); + m_pit->set_clk<1>(XTAL(22'118'400) / 18); + m_pit->set_clk<2>(XTAL(22'118'400) / 18); + m_pit->out_handler<2>().set(m_usart, FUNC(i8251_device::write_rxc)); + m_pit->out_handler<2>().append(m_usart, FUNC(i8251_device::write_txc)); + + I8251(config, m_usart, 0); + m_usart->txd_handler().set(m_rs232, FUNC(rs232_port_device::write_txd)); + m_usart->dtr_handler().set(m_rs232, FUNC(rs232_port_device::write_dtr)); + m_usart->rts_handler().set(m_rs232, FUNC(rs232_port_device::write_rts)); + + I8255A(config, m_ppi, 0); + + RS232_PORT(config, m_rs232, default_rs232_devices, "terminal"); + m_rs232->rxd_handler().set(m_usart, FUNC(i8251_device::write_rxd)); + m_rs232->dsr_handler().set(m_usart, FUNC(i8251_device::write_dsr)); + m_rs232->cts_handler().set(m_usart, FUNC(i8251_device::write_cts)); +} /* ROM definition */ ROM_START( isbc8030 ) |