summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/altair.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/altair.cpp')
-rw-r--r--src/mame/drivers/altair.cpp39
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)