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/europc.cpp | |
parent | c24473ddff715ecec2e258a6eb38960cf8c8e98e (diff) |
Revert "conflict resolution (nw)"
This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing
changes made to 009cba4fb8102102168ef32870892438327f3705.
Diffstat (limited to 'src/mame/drivers/europc.cpp')
-rw-r--r-- | src/mame/drivers/europc.cpp | 99 |
1 files changed, 34 insertions, 65 deletions
diff --git a/src/mame/drivers/europc.cpp b/src/mame/drivers/europc.cpp index 429def9e01b..1ac51ff2853 100644 --- a/src/mame/drivers/europc.cpp +++ b/src/mame/drivers/europc.cpp @@ -31,7 +31,6 @@ #include "emu.h" #include "cpu/i86/i86.h" #include "bus/isa/aga.h" -#include "bus/isa/fdc.h" #include "machine/genpc.h" #include "machine/nvram.h" #include "machine/pckeybrd.h" @@ -92,6 +91,7 @@ private: { TIMER_RTC }; + static void cfg_builtin_720K(device_t *device); void europc_io(address_map &map); void europc_map(address_map &map); }; @@ -514,59 +514,32 @@ void europc_pc_state::europc_io(address_map &map) map(0x02e0, 0x02e0).r(FUNC(europc_pc_state::europc_jim2_r)); } -class europc_fdc_device : public isa8_fdc_device +/* single built-in 3.5" 720K drive, connector for optional external 3.5" or 5.25" drive */ +void europc_pc_state::cfg_builtin_720K(device_t *device) { -public: - europc_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - virtual void device_add_mconfig(machine_config &config) override; -}; - -DEFINE_DEVICE_TYPE(EUROPC_FDC, europc_fdc_device, "europc_fdc", "EURO PC FDC hookup") - -europc_fdc_device::europc_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : isa8_fdc_device(mconfig, EUROPC_FDC, tag, owner, clock) -{ -} - -static void pc_dd_floppies(device_slot_interface &device) -{ - device.option_add("525dd", FLOPPY_525_DD); - device.option_add("35dd", FLOPPY_35_DD); -} - -void europc_fdc_device::device_add_mconfig(machine_config &config) -{ - wd37c65c_device &fdc(WD37C65C(config, m_fdc, 16_MHz_XTAL)); - fdc.intrq_wr_callback().set(FUNC(isa8_fdc_device::irq_w)); - fdc.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w)); - // single built-in 3.5" 720K drive, connector for optional external 3.5" or 5.25" drive - FLOPPY_CONNECTOR(config, "fdc:0", pc_dd_floppies, "35dd", isa8_fdc_device::floppy_formats).set_fixed(true); - FLOPPY_CONNECTOR(config, "fdc:1", pc_dd_floppies, "", isa8_fdc_device::floppy_formats); -} - -static void europc_fdc(device_slot_interface &device) -{ - device.option_add("fdc", EUROPC_FDC); + dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:0")).set_default_option("35dd"); + dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:0")).set_fixed(true); + dynamic_cast<device_slot_interface &>(*device->subdevice("fdc:1")).set_default_option(""); } //Euro PC -void europc_pc_state::europc(machine_config &config) -{ - I8088(config, m_maincpu, 4772720*2); - m_maincpu->set_addrmap(AS_PROGRAM, &europc_pc_state::europc_map); - m_maincpu->set_addrmap(AS_IO, &europc_pc_state::europc_io); - m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); - - PCNOPPI_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu); - - ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "aga", false); // FIXME: determine ISA bus clock - ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "lpt", true); - ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "com", true); - ISA8_SLOT(config, "isa4", 0, "mb:isa", europc_fdc, "fdc", true); - PC_KEYB(config, m_keyboard); - m_keyboard->keypress().set("mb:pic8259", FUNC(pic8259_device::ir1_w)); +MACHINE_CONFIG_START(europc_pc_state::europc) + MCFG_DEVICE_ADD("maincpu", I8088, 4772720*2) + MCFG_DEVICE_PROGRAM_MAP(europc_map) + MCFG_DEVICE_IO_MAP(europc_io) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) + + MCFG_PCNOPPI_MOTHERBOARD_ADD("mb", "maincpu") + + MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "aga", false) // FIXME: determine ISA bus clock + MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) + MCFG_SLOT_FIXED(true) + MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) + MCFG_SLOT_FIXED(true) + MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) + MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_builtin_720K) + MCFG_SLOT_FIXED(true) + MCFG_PC_KEYB_ADD("pc_keyboard", WRITELINE("mb:pic8259", pic8259_device, ir1_w)) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);; @@ -575,8 +548,8 @@ void europc_pc_state::europc(machine_config &config) RAM(config, m_ram).set_default_size("512K").set_extra_options("256K, 640K"); /* software lists */ - SOFTWARE_LIST(config, "disk_list").set_original("ibm5150"); -} + MCFG_SOFTWARE_LIST_ADD("disk_list", "ibm5150") +MACHINE_CONFIG_END //Euro PC II void europc_pc_state::europc2(machine_config &config) @@ -587,16 +560,18 @@ void europc_pc_state::europc2(machine_config &config) } //Euro XT -void europc_pc_state::euroxt(machine_config &config) -{ +MACHINE_CONFIG_START(europc_pc_state::euroxt) europc(config); m_ram->set_default_size("768K"); - subdevice<isa8_slot_device>("isa2")->set_default_option(nullptr); - ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, "xtide", true); // FIXME: determine ISA bus clock - ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, "lpt", true); -} + MCFG_DEVICE_MODIFY("isa2") + MCFG_SLOT_DEFAULT_OPTION(nullptr) + MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "xtide", false) // FIXME: determine ISA bus clock + MCFG_SLOT_FIXED(true) + MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) + MCFG_SLOT_FIXED(true) +MACHINE_CONFIG_END ROM_START( europc ) ROM_REGION(0x10000,"bios", 0) @@ -617,18 +592,12 @@ ROM_START( europc ) ROMX_LOAD("bios_v2.04.bin", 0x8000, 0x8000, CRC(e623967c) SHA1(5196b14018da1f3198e2950af0e6eab41425f556), ROM_BIOS(6)) ROM_SYSTEM_BIOS( 7, "v2.05", "EuroPC v2.05" ) ROMX_LOAD("bios_2.05.bin", 0x8000, 0x8000, CRC(372ceed6) SHA1(bb3d3957a22422f98be2225bdc47705bcab96f56), ROM_BIOS(7)) // v2.04 and v2.05 don't work yet, , see comment section - - ROM_REGION(0x1000, "kbdctrl", 0) - ROM_LOAD("zc86115p-mc6805u2.bin", 0x0000, 0x1000, CRC(d90c1fab) SHA1(ddb7060abddee7294723833c303090de35c1e79c)) -ROM_END + ROM_END ROM_START( europc2 ) ROM_REGION(0x10000,"bios", 0) // hdd bios integrated! ROM_LOAD("europcii_bios_v3.01_500145.bin", 0x8000, 0x8000, CRC(ecca89c8) SHA1(802b89babdf0ab0a0a9c21d1234e529c8386d6fb)) - - ROM_REGION(0x1000, "kbdctrl", 0) - ROM_LOAD("zc86115p-mc6805u2.bin", 0x0000, 0x1000, CRC(d90c1fab) SHA1(ddb7060abddee7294723833c303090de35c1e79c)) ROM_END ROM_START( euroxt ) |