diff options
Diffstat (limited to 'src/mame/drivers/altair.cpp')
-rw-r--r-- | src/mame/drivers/altair.cpp | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/src/mame/drivers/altair.cpp b/src/mame/drivers/altair.cpp index e4fe515b417..a1cb7132f21 100644 --- a/src/mame/drivers/altair.cpp +++ b/src/mame/drivers/altair.cpp @@ -34,23 +34,17 @@ class altair_state : public driver_device { public: - altair_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_mc6850(*this, "mc6850"), - m_ram(*this, "ram") - { - } + altair_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_ram(*this, "ram") + { } DECLARE_QUICKLOAD_LOAD_MEMBER(altair); - DECLARE_WRITE_LINE_MEMBER(write_acia_clock); - -protected: - virtual void machine_reset() override; private: + virtual void machine_reset() override; required_device<cpu_device> m_maincpu; - required_device<acia6850_device> m_mc6850; required_shared_ptr<uint8_t> m_ram; }; @@ -67,8 +61,8 @@ static ADDRESS_MAP_START(altair_io, AS_IO, 8, altair_state) ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_GLOBAL_MASK(0xff) // TODO: Remove AM_MIRROR() and use SIO address S0-S7 - AM_RANGE( 0x00, 0x00 ) AM_MIRROR(0x10) AM_DEVREADWRITE("mc6850", acia6850_device, status_r, control_w) - AM_RANGE( 0x01, 0x01 ) AM_MIRROR(0x10) AM_DEVREADWRITE("mc6850", acia6850_device, data_r, data_w) + AM_RANGE( 0x00, 0x00 ) AM_MIRROR(0x10) AM_DEVREADWRITE("acia", acia6850_device, status_r, control_w) + AM_RANGE( 0x01, 0x01 ) AM_MIRROR(0x10) AM_DEVREADWRITE("acia", acia6850_device, data_r, data_w) ADDRESS_MAP_END /* Input ports */ @@ -90,12 +84,6 @@ QUICKLOAD_LOAD_MEMBER( altair_state,altair) return image_init_result::PASS; } -WRITE_LINE_MEMBER(altair_state::write_acia_clock) -{ - m_mc6850->write_txc(state); - m_mc6850->write_rxc(state); -} - void altair_state::machine_reset() { // Set startup address done by turn-key @@ -109,17 +97,18 @@ static MACHINE_CONFIG_START( altair ) MCFG_CPU_IO_MAP(altair_io) /* video hardware */ - MCFG_DEVICE_ADD("mc6850", ACIA6850, 0) + MCFG_DEVICE_ADD("acia", ACIA6850, 0) MCFG_ACIA6850_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd)) MCFG_ACIA6850_RTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts)) MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(DEVWRITELINE("mc6850", acia6850_device, write_rxd)) - MCFG_RS232_DCD_HANDLER(DEVWRITELINE("mc6850", acia6850_device, write_dcd)) - MCFG_RS232_CTS_HANDLER(DEVWRITELINE("mc6850", acia6850_device, write_cts)) + MCFG_RS232_RXD_HANDLER(DEVWRITELINE("acia", acia6850_device, write_rxd)) + MCFG_RS232_DCD_HANDLER(DEVWRITELINE("acia", acia6850_device, write_dcd)) + MCFG_RS232_CTS_HANDLER(DEVWRITELINE("acia", acia6850_device, write_cts)) MCFG_DEVICE_ADD("acia_clock", CLOCK, 153600) // TODO: this is set using jumpers S3/S2/S1/S0 - MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(altair_state, write_acia_clock)) + MCFG_CLOCK_SIGNAL_HANDLER(DEVWRITELINE("acia", acia6850_device, write_txc)) + MCFG_DEVCB_CHAIN_OUTPUT(DEVWRITELINE("acia", acia6850_device, write_rxc)) /* quickload */ MCFG_QUICKLOAD_ADD("quickload", altair_state, altair, "bin", 0) |