specpls3, cpc664, cpc6128, et al.: Add IPF floppy format used by a few software list entries

This commit is contained in:
AJR 2022-05-22 17:12:52 -04:00
parent d7ed4e5d86
commit dbc62842c1
4 changed files with 25 additions and 8 deletions

View File

@ -106,6 +106,7 @@ Some bugs left :
#include "imagedev/cassette.h"
#include "formats/tzx_cas.h"
#include "formats/msx_dsk.h"
#include "formats/ipf_dsk.h"
#include "machine/ram.h"
#include "softlist.h"
@ -796,6 +797,12 @@ static void amstrad_floppies(device_slot_interface &device)
device.option_add("35ssdd", FLOPPY_35_DD);
}
void amstrad_state::amstrad_floppy_formats(format_registration &fr)
{
fr.add_mfm_containers();
fr.add(FLOPPY_IPF_FORMAT);
}
static void aleste_floppies(device_slot_interface &device)
{
device.option_add("35dd", FLOPPY_35_DD);
@ -986,8 +993,8 @@ void amstrad_state::cpc664(machine_config &config)
{
amstrad_base(config);
UPD765A(config, m_fdc, 16_MHz_XTAL / 4, true, true);
FLOPPY_CONNECTOR(config, "upd765:0", amstrad_floppies, "3ssdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "upd765:1", amstrad_floppies, "35ssdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "upd765:0", amstrad_floppies, "3ssdd", amstrad_state::amstrad_floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "upd765:1", amstrad_floppies, "35ssdd", amstrad_state::amstrad_floppy_formats).enable_sound(true);
SOFTWARE_LIST(config, "flop_list").set_original("cpc_flop");
cpc_expansion_slot_device &exp(CPC_EXPANSION_SLOT(config, "exp", 16_MHz_XTAL / 4, cpc_exp_cards, nullptr));
@ -1005,8 +1012,8 @@ void amstrad_state::cpc6128(machine_config &config)
{
amstrad_base(config);
UPD765A(config, m_fdc, 16_MHz_XTAL / 4, true, true);
FLOPPY_CONNECTOR(config, "upd765:0", amstrad_floppies, "3ssdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "upd765:1", amstrad_floppies, "35ssdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "upd765:0", amstrad_floppies, "3ssdd", amstrad_state::amstrad_floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "upd765:1", amstrad_floppies, "35ssdd", amstrad_state::amstrad_floppy_formats).enable_sound(true);
SOFTWARE_LIST(config, "flop_list").set_original("cpc_flop");
cpc_expansion_slot_device &exp(CPC_EXPANSION_SLOT(config, "exp", 16_MHz_XTAL / 4, cpc_exp_cards, nullptr));
@ -1092,8 +1099,8 @@ void amstrad_state::cpcplus(machine_config &config)
cpcplus_cartslot(config);
FLOPPY_CONNECTOR(config, "upd765:0", amstrad_floppies, "3ssdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "upd765:1", amstrad_floppies, "35ssdd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "upd765:0", amstrad_floppies, "3ssdd", amstrad_state::amstrad_floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "upd765:1", amstrad_floppies, "35ssdd", amstrad_state::amstrad_floppy_formats).enable_sound(true);
SOFTWARE_LIST(config, "flop_list").set_original("cpc_flop");
cpc_expansion_slot_device &exp(CPC_EXPANSION_SLOT(config, "exp", 40_MHz_XTAL / 10, cpcplus_exp_cards, nullptr));

View File

@ -154,6 +154,7 @@ http://www.z88forever.org.uk/zxplus3e/
#include "screen.h"
#include "softlist_dev.h"
#include "formats/ipf_dsk.h"
#include "formats/tzx_cas.h"
#define VERBOSE 0
@ -371,6 +372,12 @@ static void specpls3_floppies(device_slot_interface &device)
device.option_add("3ssdd", FLOPPY_3_SSDD);
}
void specpls3_state::floppy_formats(format_registration &fr)
{
fr.add_mfm_containers();
fr.add(FLOPPY_IPF_FORMAT);
}
bool specpls3_state::is_contended(offs_t offset)
{
u8 bank = m_bank_ram[3]->entry();
@ -418,8 +425,8 @@ 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", floppy_image_device::default_mfm_floppy_formats); // internal drive
FLOPPY_CONNECTOR(config, "upd765:1", specpls3_floppies, "3ssdd", floppy_image_device::default_mfm_floppy_formats); // external drive
FLOPPY_CONNECTOR(config, "upd765:0", specpls3_floppies, "3ssdd", specpls3_state::floppy_formats); // internal drive
FLOPPY_CONNECTOR(config, "upd765:1", specpls3_floppies, "3ssdd", specpls3_state::floppy_formats); // external drive
SOFTWARE_LIST(config, "flop_list").set_original("specpls3_flop");
}

View File

@ -256,6 +256,7 @@ private:
DECLARE_WRITE_LINE_MEMBER( cpc_romdis );
void rom_select(uint8_t data);
static void amstrad_floppy_formats(format_registration &fr);
static void aleste_floppy_formats(format_registration &fr);
IRQ_CALLBACK_MEMBER(amstrad_cpu_acknowledge_int);

View File

@ -49,6 +49,8 @@ private:
void plus3_io(address_map &map);
void plus3_mem(address_map &map);
static void floppy_formats(format_registration &fr);
optional_device<upd765a_device> m_upd765;
optional_device_array<floppy_connector, 2> m_flop;
};