summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/prodigy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/prodigy.cpp')
-rw-r--r--src/mame/drivers/prodigy.cpp60
1 files changed, 31 insertions, 29 deletions
diff --git a/src/mame/drivers/prodigy.cpp b/src/mame/drivers/prodigy.cpp
index e1c008166bb..74fee06c884 100644
--- a/src/mame/drivers/prodigy.cpp
+++ b/src/mame/drivers/prodigy.cpp
@@ -170,7 +170,7 @@ private:
void maincpu_map(address_map &map);
- required_device<cpu_device> m_maincpu;
+ required_device<m6502_device> m_maincpu;
required_device<ttl74145_device> m_74145;
uint8_t m_segments;
uint8_t m_digit_cache[4];
@@ -641,37 +641,39 @@ static INPUT_PORTS_START( prodigy )
PORT_BIT(0xc00, 0x00, IPT_UNUSED )
INPUT_PORTS_END
-MACHINE_CONFIG_START(prodigy_state::prodigy)
+void prodigy_state::prodigy(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M6502, XTAL(2'000'000))
- MCFG_DEVICE_PROGRAM_MAP(maincpu_map)
+ M6502(config, m_maincpu, XTAL(2'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &prodigy_state::maincpu_map);
config.set_default_layout(layout_prodigy);
- MCFG_DEVICE_ADD("io_74145", TTL74145, 0)
-
- MCFG_DEVICE_ADD("via", VIA6522, XTAL(2'000'000))
- MCFG_VIA6522_IRQ_HANDLER(WRITELINE(*this, prodigy_state, irq_handler));
- MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(*this, prodigy_state, via_pa_w))
- MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(*this, prodigy_state, via_pb_w))
- MCFG_VIA6522_READPA_HANDLER(READ8(*this, prodigy_state, via_pa_r))
- MCFG_VIA6522_READPB_HANDLER(READ8(*this, prodigy_state, via_pb_r))
- MCFG_VIA6522_CB1_HANDLER(WRITELINE(*this, prodigy_state, via_cb1_w))
- MCFG_VIA6522_CB2_HANDLER(WRITELINE(*this, prodigy_state, via_cb2_w))
-
- MCFG_DEVICE_ADD(NETLIST_TAG, NETLIST_CPU, XTAL(2'000'000) * 30)
- MCFG_NETLIST_SETUP(prodigy)
-
- MCFG_NETLIST_LOGIC_INPUT(NETLIST_TAG, "cb1", "cb1.IN", 0)
- MCFG_NETLIST_LOGIC_INPUT(NETLIST_TAG, "cb2", "cb2.IN", 0)
- MCFG_NETLIST_LOGIC_OUTPUT(NETLIST_TAG, "bcd_bit0", "bcd_bit0", prodigy_state, bcd_bit0_cb, "")
- MCFG_NETLIST_LOGIC_OUTPUT(NETLIST_TAG, "bcd_bit1", "bcd_bit1", prodigy_state, bcd_bit1_cb, "")
- MCFG_NETLIST_LOGIC_OUTPUT(NETLIST_TAG, "bcd_bit2", "bcd_bit2", prodigy_state, bcd_bit2_cb, "")
- MCFG_NETLIST_LOGIC_OUTPUT(NETLIST_TAG, "bcd_bit3", "bcd_bit3", prodigy_state, bcd_bit3_cb, "")
- MCFG_NETLIST_LOGIC_OUTPUT(NETLIST_TAG, "bcd_bit4", "bcd_bit4", prodigy_state, bcd_bit4_cb, "")
- MCFG_NETLIST_LOGIC_OUTPUT(NETLIST_TAG, "bcd_bit5", "bcd_bit5", prodigy_state, bcd_bit5_cb, "")
- MCFG_NETLIST_LOGIC_OUTPUT(NETLIST_TAG, "bcd_bit6", "bcd_bit6", prodigy_state, bcd_bit6_cb, "")
- MCFG_NETLIST_LOGIC_OUTPUT(NETLIST_TAG, "bcd_bit7", "bcd_bit7", prodigy_state, bcd_bit7_cb, "")
-MACHINE_CONFIG_END
+ TTL74145(config, m_74145, 0);
+
+ VIA6522(config, m_via, XTAL(2'000'000));
+ m_via->irq_handler().set(FUNC(prodigy_state::irq_handler));
+ m_via->writepa_handler().set(FUNC(prodigy_state::via_pa_w));
+ m_via->writepb_handler().set(FUNC(prodigy_state::via_pb_w));
+ m_via->readpa_handler().set(FUNC(prodigy_state::via_pa_r));
+ m_via->readpb_handler().set(FUNC(prodigy_state::via_pb_r));
+ m_via->cb1_handler().set(FUNC(prodigy_state::via_cb1_w));
+ m_via->cb2_handler().set(FUNC(prodigy_state::via_cb2_w));
+
+ NETLIST_CPU(config, m_bcd, XTAL(2'000'000) * 30);
+ m_bcd->set_constructor(netlist_prodigy);
+
+ NETLIST_LOGIC_INPUT(config, m_cb1); m_cb1->set_params("cb1.IN", 0);
+ NETLIST_LOGIC_INPUT(config, m_cb2); m_cb2->set_params("cb2.IN", 0);
+
+ NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit0").set_params("bcd_bit0", FUNC(prodigy_state::bcd_bit0_cb));
+ NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit1").set_params("bcd_bit1", FUNC(prodigy_state::bcd_bit1_cb));
+ NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit2").set_params("bcd_bit2", FUNC(prodigy_state::bcd_bit2_cb));
+ NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit3").set_params("bcd_bit3", FUNC(prodigy_state::bcd_bit3_cb));
+ NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit4").set_params("bcd_bit4", FUNC(prodigy_state::bcd_bit4_cb));
+ NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit5").set_params("bcd_bit5", FUNC(prodigy_state::bcd_bit5_cb));
+ NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit6").set_params("bcd_bit6", FUNC(prodigy_state::bcd_bit6_cb));
+ NETLIST_LOGIC_OUTPUT(config, "bcd:bcd_bit7").set_params("bcd_bit7", FUNC(prodigy_state::bcd_bit7_cb));
+}
/*
* 6522 VIA init sequence