diff options
Diffstat (limited to 'src/mame/drivers/coco12.cpp')
-rw-r--r-- | src/mame/drivers/coco12.cpp | 70 |
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 |