diff options
author | andreasnaive <andreasnaive@gmail.com> | 2019-03-25 23:13:40 +0100 |
---|---|---|
committer | andreasnaive <andreasnaive@gmail.com> | 2019-03-25 23:13:40 +0100 |
commit | b380514764cf857469bae61c11143a19f79a74c5 (patch) | |
tree | 63c8012e262618f08a332da31dd714281aa2c5ed /src/mame/drivers/apple2e.cpp | |
parent | c24473ddff715ecec2e258a6eb38960cf8c8e98e (diff) |
Revert "conflict resolution (nw)"
This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing
changes made to 009cba4fb8102102168ef32870892438327f3705.
Diffstat (limited to 'src/mame/drivers/apple2e.cpp')
-rw-r--r-- | src/mame/drivers/apple2e.cpp | 217 |
1 files changed, 76 insertions, 141 deletions
diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp index 3dfce268e3d..814e8b335a4 100644 --- a/src/mame/drivers/apple2e.cpp +++ b/src/mame/drivers/apple2e.cpp @@ -114,7 +114,6 @@ Address bus A0-A11 is Y0-Y11 #include "machine/sonydriv.h" #include "machine/timer.h" #include "machine/ds1315.h" -#include "machine/apple2common.h" #include "bus/a2bus/a2bus.h" #include "bus/a2bus/a2diskii.h" @@ -153,7 +152,6 @@ Address bus A0-A11 is Y0-Y11 #include "bus/a2bus/ssprite.h" #include "bus/a2bus/ssbapple.h" #include "bus/a2bus/transwarp.h" -#include "bus/a2bus/a2vulcan.h" #include "bus/rs232/rs232.h" @@ -213,7 +211,6 @@ public: m_scantimer(*this, "scantimer"), m_ram(*this, RAM_TAG), m_rom(*this, "maincpu"), - m_a2common(*this, "a2common"), m_cecbanks(*this, "cecexp"), m_ay3600(*this, A2_KBDC_TAG), m_video(*this, A2_VIDEO_TAG), @@ -256,7 +253,6 @@ public: required_device<timer_device> m_scantimer; required_device<ram_device> m_ram; required_memory_region m_rom; - required_device<apple2_common_device> m_a2common; optional_memory_region m_cecbanks; required_device<ay3600_device> m_ay3600; required_device<a2_video_device> m_video; @@ -468,7 +464,7 @@ private: uint8_t *m_exp_ram; int m_exp_wptr, m_exp_liveptr; - void do_io(int offset, bool is_iic); + void do_io(address_space &space, int offset, bool is_iic); uint8_t read_floatingbus(); void update_slotrom_banks(); void lc_update(int offset, bool writing); @@ -485,8 +481,6 @@ private: uint8_t mig_r(uint16_t offset); void mig_w(uint16_t offset, uint8_t data); - - offs_t dasm_trampoline(std::ostream &stream, offs_t pc, const util::disasm_interface::data_buffer &opcodes, const util::disasm_interface::data_buffer ¶ms); }; /*************************************************************************** @@ -497,11 +491,6 @@ private: #define JOYSTICK_SENSITIVITY 50 #define JOYSTICK_AUTOCENTER 80 -offs_t apple2e_state::dasm_trampoline(std::ostream &stream, offs_t pc, const util::disasm_interface::data_buffer &opcodes, const util::disasm_interface::data_buffer ¶ms) -{ - return m_a2common->dasm_override(stream, pc, opcodes, params); -} - uint8_t apple2e_state::mig_r(uint16_t offset) { //printf("mig_r @ %x\n", offset + 0xc00); @@ -791,8 +780,8 @@ void apple2e_state::machine_start() } // precalculate joystick time constants - m_x_calibration = attotime::from_nsec(10800).as_double(); - m_y_calibration = attotime::from_nsec(10800).as_double(); + m_x_calibration = attotime::from_usec(12).as_double(); + m_y_calibration = attotime::from_usec(13).as_double(); // cache slot devices for (int i = 0; i <= 7; i++) @@ -829,24 +818,6 @@ void apple2e_state::machine_start() m_video->m_char_ptr = memregion("gfx1")->base(); m_video->m_char_size = memregion("gfx1")->bytes(); - int ram_size = 0x10000; - if (m_ram_size < 0x10000) - { - ram_size = m_ram_size; - } - - for (int adr = 0; adr < ram_size; adr += 2) - { - m_ram_ptr[adr] = 0; - m_ram_ptr[adr+1] = 0xff; - - if (m_ram_size >= (128*1024)) - { - m_aux_ptr[adr] = 0; - m_aux_ptr[adr+1] = 0xff; - } - } - m_inh_slot = -1; m_cnxx_slot = CNXX_UNCLAIMED; m_mockingboard4c = false; @@ -1398,7 +1369,7 @@ void apple2e_state::cec_lcrom_update() } // most softswitches don't care about read vs write, so handle them here -void apple2e_state::do_io(int offset, bool is_iic) +void apple2e_state::do_io(address_space &space, int offset, bool is_iic) { if(machine().side_effects_disabled()) return; @@ -1621,7 +1592,6 @@ void apple2e_state::do_io(int offset, bool is_iic) READ8_MEMBER(apple2e_state::c000_r) { if(machine().side_effects_disabled()) return read_floatingbus(); - u8 uFloatingBus7 = read_floatingbus() & 0x7f; if ((offset & 0xf0) == 0x00) // keyboard latch, $C000 is really 00-0F { @@ -1686,46 +1656,46 @@ READ8_MEMBER(apple2e_state::c000_r) case 0x68: if (m_cassette) { - return (m_cassette->input() > 0.0 ? 0x80 : 0) | uFloatingBus7; + return m_cassette->input() > 0.0 ? 0x80 : 0; } - return uFloatingBus7; + return 0; case 0x61: // button 0 or Open Apple case 0x69: - return (((m_joybuttons->read() & 0x10) || (m_kbspecial->read() & 0x10)) ? 0x80 : 0) | uFloatingBus7; + return ((m_joybuttons->read() & 0x10) || (m_kbspecial->read() & 0x10)) ? 0x80 : 0; case 0x62: // button 1 or Solid Apple case 0x6a: - return (((m_joybuttons->read() & 0x20) || (m_kbspecial->read() & 0x20)) ? 0x80 : 0) | uFloatingBus7; + return ((m_joybuttons->read() & 0x20) || (m_kbspecial->read() & 0x20)) ? 0x80 : 0; case 0x63: // button 2 or SHIFT key case 0x6b: - return (((m_joybuttons->read() & 0x40) || (m_kbspecial->read() & 0x06)) ? 0x80 : 0) | uFloatingBus7; + return ((m_joybuttons->read() & 0x40) || (m_kbspecial->read() & 0x06)) ? 0x80 : 0; case 0x64: // joy 1 X axis case 0x6c: - return ((machine().time().as_double() < m_joystick_x1_time) ? 0x80 : 0) | uFloatingBus7; + return (machine().time().as_double() < m_joystick_x1_time) ? 0x80 : 0; case 0x65: // joy 1 Y axis case 0x6d: - return ((machine().time().as_double() < m_joystick_y1_time) ? 0x80 : 0) | uFloatingBus7; + return (machine().time().as_double() < m_joystick_y1_time) ? 0x80 : 0; case 0x66: // joy 2 X axis case 0x6e: - return ((machine().time().as_double() < m_joystick_x2_time) ? 0x80 : 0) | uFloatingBus7; + return (machine().time().as_double() < m_joystick_x2_time) ? 0x80 : 0; case 0x67: // joy 2 Y axis case 0x6f: - return ((machine().time().as_double() < m_joystick_y2_time) ? 0x80 : 0) | uFloatingBus7; + return (machine().time().as_double() < m_joystick_y2_time) ? 0x80 : 0; case 0x7e: // read IOUDIS - return (m_ioudis ? 0x80 : 0x00) | uFloatingBus7; + return m_ioudis ? 0x80 : 0x00; case 0x7f: // read DHIRES - return (m_video->m_dhires ? 0x00 : 0x80) | uFloatingBus7; + return m_video->m_dhires ? 0x00 : 0x80; default: - do_io(offset, false); + do_io(space, offset, false); break; } @@ -1840,12 +1810,12 @@ WRITE8_MEMBER(apple2e_state::c000_w) case 0x78: case 0x79: case 0x7a: case 0x7b: case 0x7c: case 0x7d: if (m_auxslotdevice) { - m_auxslotdevice->write_c07x(offset & 0xf, data); + m_auxslotdevice->write_c07x(space, offset & 0xf, data); // card may have banked auxram; get a new bank pointer m_aux_bank_ptr = m_auxslotdevice->get_auxbank_ptr(); } - do_io(offset, false); // make sure it also side-effect resets the paddles as documented + do_io(space, offset, false); // make sure it also side-effect resets the paddles as documented break; case 0x7e: // SETIOUDIS @@ -1855,7 +1825,7 @@ WRITE8_MEMBER(apple2e_state::c000_w) m_ioudis = false; break; default: - do_io(offset, false); + do_io(space, offset, false); break; } } @@ -1863,7 +1833,6 @@ WRITE8_MEMBER(apple2e_state::c000_w) READ8_MEMBER(apple2e_state::c000_iic_r) { if(machine().side_effects_disabled()) return read_floatingbus(); - u8 uFloatingBus7 = read_floatingbus() & 0x7f; if ((offset & 0xf0) == 0x00) // keyboard latch, $C000 is really 00-0F { @@ -1939,46 +1908,46 @@ READ8_MEMBER(apple2e_state::c000_iic_r) return m_y0edge ? 0x80 : 0x00; case 0x60: // 40/80 column switch (IIc only) - return ((m_sysconfig->read() & 0x04) ? 0x80 : 0) | uFloatingBus7; + return (m_sysconfig->read() & 0x04) ? 0x80 : 0; case 0x61: // button 0 or Open Apple or mouse button 1 case 0x69: - return (((m_joybuttons->read() & 0x10) || (m_kbspecial->read() & 0x10)) ? 0x80 : 0) | uFloatingBus7; + return ((m_joybuttons->read() & 0x10) || (m_kbspecial->read() & 0x10)) ? 0x80 : 0; case 0x62: // button 1 or Solid Apple case 0x6a: - return (((m_joybuttons->read() & 0x20) || (m_kbspecial->read() & 0x20)) ? 0x80 : 0) | uFloatingBus7; + return ((m_joybuttons->read() & 0x20) || (m_kbspecial->read() & 0x20)) ? 0x80 : 0; case 0x63: // mouse button 2 (no other function on IIc) case 0x6b: - return (m_mouseb->read() ? 0 : 0x80) | uFloatingBus7; + return m_mouseb->read() ? 0 : 0x80; case 0x64: // joy 1 X axis case 0x6c: - return ((machine().time().as_double() < m_joystick_x1_time) ? 0x80 : 0) | uFloatingBus7; + return (machine().time().as_double() < m_joystick_x1_time) ? 0x80 : 0; case 0x65: // joy 1 Y axis case 0x6d: - return ((machine().time().as_double() < m_joystick_y1_time) ? 0x80 : 0) | uFloatingBus7; + return (machine().time().as_double() < m_joystick_y1_time) ? 0x80 : 0; case 0x66: // mouse X1 (IIc only) case 0x6e: - return (m_x1 ? 0x80 : 0) | uFloatingBus7; + return m_x1 ? 0x80 : 0; case 0x67: // mouse Y1 (IIc only) case 0x6f: - return (m_y1 ? 0x80 : 0) | uFloatingBus7; + return m_y1 ? 0x80 : 0; case 0x7e: // read IOUDIS m_vbl = false; lower_irq(IRQ_VBL); - return (m_ioudis ? 0x80 : 0x00) | uFloatingBus7; + return m_ioudis ? 0x80 : 0x00; case 0x7f: // read DHIRES - return (m_video->m_dhires ? 0x00 : 0x80) | uFloatingBus7; + return m_video->m_dhires ? 0x00 : 0x80; default: - do_io(offset, true); + do_io(space, offset, true); break; } @@ -2116,7 +2085,7 @@ WRITE8_MEMBER(apple2e_state::c000_iic_w) break; default: - do_io(offset, true); + do_io(space, offset, true); break; } } @@ -2334,7 +2303,7 @@ void apple2e_state::write_slot_rom(int slotbias, int offset, uint8_t data) uint8_t apple2e_state::read_int_rom(int slotbias, int offset) { //return m_rom_ptr[slotbias + offset]; - return m_ds1315->read(slotbias + offset); + return m_ds1315->read(machine().dummy_space(), slotbias + offset); } READ8_MEMBER(apple2e_state::nsc_backing_r) { return m_rom_ptr[offset]; } @@ -3956,7 +3925,6 @@ static void apple2_cards(device_slot_interface &device) device.option_add("arcbd", A2BUS_ARCADEBOARD); /* Third Millenium Engineering Arcade Board */ device.option_add("midi", A2BUS_MIDI); /* Generic 6840+6850 MIDI board */ device.option_add("zipdrive", A2BUS_ZIPDRIVE); /* ZIP Technologies IDE card */ - device.option_add("focusdrive", A2BUS_FOCUSDRIVE); /* Focus Drive IDE card */ device.option_add("echoiiplus", A2BUS_ECHOPLUS); /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */ device.option_add("scsi", A2BUS_SCSI); /* Apple II SCSI Card */ device.option_add("applicard", A2BUS_APPLICARD); /* PCPI Applicard */ @@ -3979,8 +3947,6 @@ static void apple2_cards(device_slot_interface &device) device.option_add("ssprite", A2BUS_SSPRITE); /* Synetix SuperSprite Board */ device.option_add("ssbapple", A2BUS_SSBAPPLE); /* SSB Apple speech board */ device.option_add("twarp", A2BUS_TRANSWARP); /* AE TransWarp accelerator */ - device.option_add("vulcan", A2BUS_VULCAN); /* Applied Engineering Vulcan IDE drive */ - device.option_add("vulcangold", A2BUS_VULCANGOLD); /* Applied Engineering Vulcan Gold IDE drive */ } static void apple2eaux_cards(device_slot_interface &device) @@ -3990,19 +3956,15 @@ static void apple2eaux_cards(device_slot_interface &device) device.option_add("rw3", A2EAUX_RAMWORKS3); /* Applied Engineering RamWorks III */ } -void apple2e_state::apple2e(machine_config &config) -{ +MACHINE_CONFIG_START(apple2e_state::apple2e) /* basic machine hardware */ M6502(config, m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::apple2e_map); - m_maincpu->set_dasm_override(FUNC(apple2e_state::dasm_trampoline)); - TIMER(config, m_scantimer, 0); m_scantimer->configure_scanline(FUNC(apple2e_state::apple2_interrupt), "screen", 0, 1); config.m_minimum_quantum = attotime::from_hz(60); APPLE2_VIDEO(config, m_video, XTAL(14'318'181)); - APPLE2_COMMON(config, m_a2common, XTAL(14'318'181)); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(1021800*14, (65*7)*2, 0, (40*7)*2, 262, 0, 192); @@ -4077,11 +4039,10 @@ void apple2e_state::apple2e(machine_config &config) /* slot devices */ A2BUS(config, m_a2bus, 0); - m_a2bus->set_space(m_maincpu, AS_PROGRAM); + m_a2bus->set_cputag("maincpu"); m_a2bus->irq_w().set(FUNC(apple2e_state::a2bus_irq_w)); m_a2bus->nmi_w().set(FUNC(apple2e_state::a2bus_nmi_w)); m_a2bus->inh_w().set(FUNC(apple2e_state::a2bus_inh_w)); - m_a2bus->dma_w().set_inputline(m_maincpu, INPUT_LINE_HALT); A2BUS_SLOT(config, "sl1", m_a2bus, apple2_cards, nullptr); A2BUS_SLOT(config, "sl2", m_a2bus, apple2_cards, nullptr); A2BUS_SLOT(config, "sl3", m_a2bus, apple2_cards, nullptr); @@ -4090,21 +4051,17 @@ void apple2e_state::apple2e(machine_config &config) A2BUS_SLOT(config, "sl6", m_a2bus, apple2_cards, "diskiing"); A2BUS_SLOT(config, "sl7", m_a2bus, apple2_cards, nullptr); - A2EAUXSLOT(config, m_a2eauxslot, 0); - m_a2eauxslot->set_space(m_maincpu, AS_PROGRAM); - m_a2eauxslot->out_irq_callback().set(FUNC(apple2e_state::a2bus_irq_w)); - m_a2eauxslot->out_nmi_callback().set(FUNC(apple2e_state::a2bus_nmi_w)); - A2EAUXSLOT_SLOT(config, "aux", m_a2eauxslot, apple2eaux_cards, "ext80"); + MCFG_DEVICE_ADD(A2_AUXSLOT_TAG, A2EAUXSLOT, 0) + MCFG_A2EAUXSLOT_CPU("maincpu") + MCFG_A2EAUXSLOT_OUT_IRQ_CB(WRITELINE(*this, apple2e_state, a2bus_irq_w)) + MCFG_A2EAUXSLOT_OUT_NMI_CB(WRITELINE(*this, apple2e_state, a2bus_nmi_w)) + MCFG_A2EAUXSLOT_SLOT_ADD(A2_AUXSLOT_TAG, "aux", apple2eaux_cards, "ext80") // default to an extended 80-column card - /* softlist config for baseline A2E - By default, filter lists where possible to compatible disks for A2E */ - SOFTWARE_LIST(config, "flop525_clean").set_original("apple2_flop_clcracked"); - SOFTWARE_LIST(config, "flop525_orig").set_compatible("apple2_flop_orig").set_filter("A2E"); - SOFTWARE_LIST(config, "flop525_misc").set_compatible("apple2_flop_misc"); + MCFG_SOFTWARE_LIST_ADD("flop525_list","apple2") - CASSETTE(config, m_cassette); - m_cassette->set_default_state(CASSETTE_STOPPED); -} + MCFG_CASSETTE_ADD(A2_CASSETTE_TAG) + MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED) +MACHINE_CONFIG_END void apple2e_state::mprof3(machine_config &config) { @@ -4113,48 +4070,38 @@ void apple2e_state::mprof3(machine_config &config) m_ram->set_default_size("128K"); } -void apple2e_state::apple2ee(machine_config &config) -{ +MACHINE_CONFIG_START(apple2e_state::apple2ee) apple2e(config); - subdevice<software_list_device>("flop525_orig")->set_filter("A2EE"); // Filter list to compatible disks for this machine. - M65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::apple2e_map); - m_maincpu->set_dasm_override(FUNC(apple2e_state::dasm_trampoline)); -} +MACHINE_CONFIG_END -void apple2e_state::spectred(machine_config &config) -{ +MACHINE_CONFIG_START(apple2e_state::spectred) apple2e(config); - i8035_device &keyb_mcu(I8035(config, "keyb_mcu", XTAL(4'000'000))); /* guessed frequency */ - keyb_mcu.set_addrmap(AS_PROGRAM, &apple2e_state::spectred_keyb_map); + MCFG_DEVICE_ADD("keyb_mcu", I8035, XTAL(4'000'000)) /* guessed frequency */ + MCFG_DEVICE_PROGRAM_MAP(spectred_keyb_map) //TODO: implement the actual interfacing to this 8035 MCU and // and then remove the keyb CPU inherited from apple2e -} +MACHINE_CONFIG_END -void apple2e_state::tk3000(machine_config &config) -{ +MACHINE_CONFIG_START(apple2e_state::tk3000) apple2e(config); M65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::apple2e_map); -// z80_device &subcpu(Z80(config, "subcpu", 1021800)); // schematics are illegible on where the clock comes from, but it *seems* to be the same as the 65C02 clock -// subcpu.set_addrmap(AS_PROGRAM, &apple2e_state::tk3000_kbd_map); -} +// MCFG_DEVICE_ADD("subcpu", Z80, 1021800) // schematics are illegible on where the clock comes from, but it *seems* to be the same as the 65C02 clock +// MCFG_DEVICE_PROGRAM_MAP(tk3000_kbd_map) +MACHINE_CONFIG_END -void apple2e_state::apple2ep(machine_config &config) -{ +MACHINE_CONFIG_START(apple2e_state::apple2ep) apple2e(config); M65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::apple2e_map); -} +MACHINE_CONFIG_END -void apple2e_state::apple2c(machine_config &config) -{ +MACHINE_CONFIG_START(apple2e_state::apple2c) apple2ee(config); - subdevice<software_list_device>("flop525_orig")->set_filter("A2C"); // Filter list to compatible disks for this machine. - M65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::apple2c_map); @@ -4197,7 +4144,7 @@ void apple2e_state::apple2c(machine_config &config) config.device_remove(A2_AUXSLOT_TAG); m_ram->set_default_size("128K").set_extra_options("128K"); -} +MACHINE_CONFIG_END static void apple2cp_set_lines(device_t *device, uint8_t lines) { @@ -4301,44 +4248,37 @@ static const floppy_interface floppy_interface = "floppy_5_25" }; -void apple2e_state::apple2cp(machine_config &config) -{ +MACHINE_CONFIG_START(apple2e_state::apple2cp) apple2c(config); M65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::apple2c_memexp_map); - m_maincpu->set_dasm_override(FUNC(apple2e_state::dasm_trampoline)); config.device_remove("sl4"); config.device_remove("sl6"); - IWM(config, m_iicpiwm, &a2cp_interface); - FLOPPY_APPLE(config, FLOPPY_0, &floppy_interface, 15, 16); - FLOPPY_APPLE(config, FLOPPY_1, &floppy_interface, 15, 16); - FLOPPY_SONY(config, FLOPPY_2, &apple2cp_floppy35_floppy_interface); - FLOPPY_SONY(config, FLOPPY_3, &apple2cp_floppy35_floppy_interface); + MCFG_IWM_ADD(IICP_IWM_TAG, a2cp_interface) + MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(floppy_interface,15,16) + MCFG_LEGACY_FLOPPY_SONY_2_DRIVES_ADDITIONAL_ADD(apple2cp_floppy35_floppy_interface) m_ram->set_default_size("128K").set_extra_options("128K, 384K, 640K, 896K, 1152K"); -} +MACHINE_CONFIG_END -void apple2e_state::apple2c_iwm(machine_config &config) -{ +MACHINE_CONFIG_START(apple2e_state::apple2c_iwm) apple2c(config); config.device_remove("sl6"); A2BUS_IWM_FDC(config, "sl6", A2BUS_7M_CLOCK).set_onboard(m_a2bus); -} +MACHINE_CONFIG_END -void apple2e_state::apple2c_mem(machine_config &config) -{ +MACHINE_CONFIG_START(apple2e_state::apple2c_mem) apple2c(config); M65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::apple2c_memexp_map); - m_maincpu->set_dasm_override(FUNC(apple2e_state::dasm_trampoline)); config.device_remove("sl6"); A2BUS_IWM_FDC(config, "sl6", A2BUS_7M_CLOCK).set_onboard(m_a2bus); m_ram->set_default_size("128K").set_extra_options("128K, 384K, 640K, 896K, 1152K"); -} +MACHINE_CONFIG_END const applefdc_interface fdc_interface = { @@ -4350,15 +4290,13 @@ const applefdc_interface fdc_interface = apple525_read_status /* read_status */ }; -void apple2e_state::laser128(machine_config &config) -{ +MACHINE_CONFIG_START(apple2e_state::laser128) apple2c(config); M65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::laser128_map); - APPLEFDC(config, m_laserudc, &fdc_interface); - FLOPPY_APPLE(config, FLOPPY_0, &floppy_interface, 15, 16); - FLOPPY_APPLE(config, FLOPPY_1, &floppy_interface, 15, 16); + MCFG_APPLEFDC_ADD(LASER128_UDC_TAG, fdc_interface) + MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(floppy_interface,15,16) config.device_remove("sl4"); config.device_remove("sl6"); @@ -4372,17 +4310,15 @@ void apple2e_state::laser128(machine_config &config) A2BUS_SLOT(config, "sl7", m_a2bus, apple2_cards, nullptr); m_ram->set_default_size("128K").set_extra_options("128K, 384K, 640K, 896K, 1152K"); -} +MACHINE_CONFIG_END -void apple2e_state::laser128ex2(machine_config &config) -{ +MACHINE_CONFIG_START(apple2e_state::laser128ex2) apple2c(config); M65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::laser128_map); - APPLEFDC(config, m_laserudc, &fdc_interface); - FLOPPY_APPLE(config, FLOPPY_0, &floppy_interface, 15, 16); - FLOPPY_APPLE(config, FLOPPY_1, &floppy_interface, 15, 16); + MCFG_APPLEFDC_ADD(LASER128_UDC_TAG, fdc_interface) + MCFG_LEGACY_FLOPPY_APPLE_2_DRIVES_ADD(floppy_interface,15,16) config.device_remove("sl4"); config.device_remove("sl6"); @@ -4396,10 +4332,9 @@ void apple2e_state::laser128ex2(machine_config &config) A2BUS_LASER128(config, "sl7", A2BUS_7M_CLOCK).set_onboard(m_a2bus); m_ram->set_default_size("128K").set_extra_options("128K, 384K, 640K, 896K, 1152K"); -} +MACHINE_CONFIG_END -void apple2e_state::ceci(machine_config &config) -{ +MACHINE_CONFIG_START(apple2e_state::ceci) apple2e(config); config.device_remove("sl1"); config.device_remove("sl2"); @@ -4416,7 +4351,7 @@ void apple2e_state::ceci(machine_config &config) config.device_remove(A2_AUXSLOT_TAG); m_ram->set_default_size("64K"); -} +MACHINE_CONFIG_END /*************************************************************************** |