sinclair/specpls3.cpp: Improved floppy drive configuration.

* Default to a single 3" SSDD drive, allow 3.5" SSDD drives.
* specpls3_flop.xml: Corrected interface type for term2a floppy.
This commit is contained in:
Vas Crabb 2022-08-17 19:10:11 +10:00
parent 55ff6ffe08
commit e8989e30e7
3 changed files with 10 additions and 5 deletions

View File

@ -15747,7 +15747,8 @@ license:CC0
<description>Terminator 2 - Judgment Day (alt)</description>
<year>1991</year>
<publisher>Ocean Software</publisher>
<part name="flop1" interface="floppy_3">
<sharedfeat name="upd765:0_default" value="35ssdd"/> <!-- still need to manually specify this, because by the time shared features are applied, parts have already been distributed to media devices -->
<part name="flop1" interface="floppy_3_5">
<dataarea name="flop" size="216320">
<rom name="terminator 2 - judgment day (1991)(ocean).dsk" size="216320" crc="d97a5f2a" sha1="512127b1523d9ba51889b3891592007dcbb89ed0"/>
</dataarea>

View File

@ -922,9 +922,12 @@ emu_options::software_options emu_options::evaluate_initial_softlist_options(con
// we need to find a mountable image slot, but we need to ensure it is a slot
// for which we have not already distributed a part to
device_image_interface *image = software_list_device::find_mountable_image(
config,
swpart,
[&results](const device_image_interface &candidate) { return results.image.count(candidate.instance_name()) == 0; });
config,
swpart,
[&results] (const device_image_interface &candidate)
{
return results.image.count(candidate.instance_name()) == 0;
});
// did we find a slot to put this part into?
if (image != nullptr)

View File

@ -369,6 +369,7 @@ void specpls3_state::plus3_us_w(uint8_t data)
static void specpls3_floppies(device_slot_interface &device)
{
device.option_add("3ssdd", FLOPPY_3_SSDD);
device.option_add("35ssdd", FLOPPY_35_SSDD);
}
void specpls3_state::floppy_formats(format_registration &fr)
@ -425,7 +426,7 @@ void specpls3_state::spectrum_plus3(machine_config &config)
UPD765A(config, m_upd765, 16_MHz_XTAL / 4, true, false); // clocked through SED9420
m_upd765->us_wr_callback().set(FUNC(specpls3_state::plus3_us_w));
FLOPPY_CONNECTOR(config, "upd765:0", specpls3_floppies, "3ssdd", specpls3_state::floppy_formats).enable_sound(true); // internal drive
FLOPPY_CONNECTOR(config, "upd765:1", specpls3_floppies, "3ssdd", specpls3_state::floppy_formats).enable_sound(true); // external drive
FLOPPY_CONNECTOR(config, "upd765:1", specpls3_floppies, nullptr, specpls3_state::floppy_formats).enable_sound(true); // external drive
SOFTWARE_LIST(config, "flop_list").set_original("specpls3_flop");
}