summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/coco12.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/coco12.cpp')
-rw-r--r--src/mame/drivers/coco12.cpp70
1 files changed, 34 insertions, 36 deletions
diff --git a/src/mame/drivers/coco12.cpp b/src/mame/drivers/coco12.cpp
index 22e3d9e27a2..b9e22c24f8c 100644
--- a/src/mame/drivers/coco12.cpp
+++ b/src/mame/drivers/coco12.cpp
@@ -474,10 +474,10 @@ MACHINE_CONFIG_START(coco12_state::coco)
MCFG_RS232_DCD_HANDLER(WRITELINE(PIA1_TAG, pia6821_device, ca1_w))
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("printer", printer)
- MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, coco_cart, "pak")
- MCFG_COCO_CARTRIDGE_CART_CB(WRITELINE(*this, coco_state, cart_w))
- MCFG_COCO_CARTRIDGE_NMI_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_NMI))
- MCFG_COCO_CARTRIDGE_HALT_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_HALT))
+ cococart_slot_device &cartslot(COCOCART_SLOT(config, CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), coco_cart, "pak"));
+ cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded
+ cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
+ cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
// video hardware
MCFG_SCREEN_MC6847_NTSC_ADD(SCREEN_TAG, VDG_TAG)
@@ -516,11 +516,10 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(coco12_state::cocoe)
coco(config);
- MCFG_COCO_CARTRIDGE_REMOVE(CARTRIDGE_TAG)
- MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, coco_cart, "fdc")
- MCFG_COCO_CARTRIDGE_CART_CB(WRITELINE(*this, coco_state, cart_w))
- MCFG_COCO_CARTRIDGE_NMI_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_NMI))
- MCFG_COCO_CARTRIDGE_HALT_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_HALT))
+ cococart_slot_device &cartslot(COCOCART_SLOT(config.replace(), CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), coco_cart, "fdc"));
+ cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded
+ cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
+ cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
MCFG_COCO_VHD_ADD(VHD0_TAG)
MCFG_COCO_VHD_ADD(VHD1_TAG)
MACHINE_CONFIG_END
@@ -535,11 +534,10 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(coco12_state::coco2)
coco(config);
- MCFG_COCO_CARTRIDGE_REMOVE(CARTRIDGE_TAG)
- MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, coco_cart, "fdcv11")
- MCFG_COCO_CARTRIDGE_CART_CB(WRITELINE(*this, coco_state, cart_w))
- MCFG_COCO_CARTRIDGE_NMI_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_NMI))
- MCFG_COCO_CARTRIDGE_HALT_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_HALT))
+ cococart_slot_device &cartslot(COCOCART_SLOT(config.replace(), CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), coco_cart, "fdcv11"));
+ cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded
+ cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
+ cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
MCFG_COCO_VHD_ADD(VHD0_TAG)
MCFG_COCO_VHD_ADD(VHD1_TAG)
MACHINE_CONFIG_END
@@ -569,33 +567,33 @@ MACHINE_CONFIG_START(coco12_state::coco2bh)
MCFG_RAM_DEFAULT_SIZE("64K")
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(coco12_state::cp400)
+void coco12_state::cp400(machine_config &config)
+{
coco(config);
- MCFG_COCO_CARTRIDGE_REMOVE(CARTRIDGE_TAG)
- MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, coco_cart, "cp450_fdc")
- MCFG_COCO_CARTRIDGE_CART_CB(WRITELINE(*this, coco_state, cart_w))
- MCFG_COCO_CARTRIDGE_NMI_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_NMI))
- MCFG_COCO_CARTRIDGE_HALT_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_HALT))
-MACHINE_CONFIG_END
+ cococart_slot_device &cartslot(COCOCART_SLOT(config.replace(), CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), coco_cart, "cp450_fdc"));
+ cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded
+ cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
+ cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
+}
-MACHINE_CONFIG_START(coco12_state::t4426)
+void coco12_state::t4426(machine_config &config)
+{
coco2(config);
- MCFG_COCO_CARTRIDGE_REMOVE(CARTRIDGE_TAG)
- MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, t4426_cart, "t4426")
- MCFG_COCO_CARTRIDGE_CART_CB(WRITELINE(*this, coco_state, cart_w))
- MCFG_COCO_CARTRIDGE_NMI_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_NMI))
- MCFG_COCO_CARTRIDGE_HALT_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_HALT))
- MCFG_SLOT_FIXED(true) // This cart is fixed so no way to change it
-MACHINE_CONFIG_END
+ cococart_slot_device &cartslot(COCOCART_SLOT(config.replace(), CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), t4426_cart, "t4426"));
+ cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded
+ cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
+ cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
+ cartslot.set_fixed(true); // This cart is fixed so no way to change it
+}
-MACHINE_CONFIG_START(coco12_state::cd6809)
+void coco12_state::cd6809(machine_config &config)
+{
coco(config);
- MCFG_COCO_CARTRIDGE_REMOVE(CARTRIDGE_TAG)
- MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, coco_cart, "cd6809_fdc")
- MCFG_COCO_CARTRIDGE_CART_CB(WRITELINE(*this, coco_state, cart_w))
- MCFG_COCO_CARTRIDGE_NMI_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_NMI))
- MCFG_COCO_CARTRIDGE_HALT_CB(INPUTLINE(MAINCPU_TAG, INPUT_LINE_HALT))
-MACHINE_CONFIG_END
+ cococart_slot_device &cartslot(COCOCART_SLOT(config.replace(), CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), coco_cart, "cd6809_fdc"));
+ cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded
+ cartslot.nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
+ cartslot.halt_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
+}
//**************************************************************************
// ROMS