floppy.c: add epson smd-165, used in the pf10

This commit is contained in:
Dirk Best 2014-01-04 13:46:44 +00:00
parent 21a41ec805
commit e68c36a77a
3 changed files with 75 additions and 239 deletions

View File

@ -51,7 +51,9 @@ const device_type EPSON_SMD_130 = &device_creator<epson_smd_130>;
const device_type EPSON_SMD_140 = &device_creator<epson_smd_140>; const device_type EPSON_SMD_140 = &device_creator<epson_smd_140>;
const device_type EPSON_SMD_150 = &device_creator<epson_smd_150>; const device_type EPSON_SMD_150 = &device_creator<epson_smd_150>;
const device_type EPSON_SMD_160 = &device_creator<epson_smd_160>; const device_type EPSON_SMD_160 = &device_creator<epson_smd_160>;
#endif
const device_type EPSON_SMD_165 = &device_creator<epson_smd_165>; const device_type EPSON_SMD_165 = &device_creator<epson_smd_165>;
#if 0
const device_type EPSON_SMD_170 = &device_creator<epson_smd_170>; const device_type EPSON_SMD_170 = &device_creator<epson_smd_170>;
const device_type EPSON_SMD_180 = &device_creator<epson_smd_180>; const device_type EPSON_SMD_180 = &device_creator<epson_smd_180>;
const device_type EPSON_SMD_240L = &device_creator<epson_smd_240l>; const device_type EPSON_SMD_240L = &device_creator<epson_smd_240l>;
@ -1506,6 +1508,40 @@ void floppy_8_dsdd::handled_variants(UINT32 *variants, int &var_count) const
// SPECIFIC FLOPPY DRIVE DEFINITIONS // SPECIFIC FLOPPY DRIVE DEFINITIONS
//************************************************************************** //**************************************************************************
//-------------------------------------------------
// epson smd-165
//
// track to track: 6 ms
// average: 97 ms
// setting time: 15 ms
// motor start time: 1 s
//
//-------------------------------------------------
epson_smd_165::epson_smd_165(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
floppy_image_device(mconfig, EPSON_SD_321, "EPSON SMD-165 Floppy Disk Drive", tag, owner, clock, "epson_smd_165", __FILE__)
{
}
epson_smd_165::~epson_smd_165()
{
}
void epson_smd_165::setup_characteristics()
{
form_factor = floppy_image::FF_35;
tracks = 40;
sides = 2;
set_rpm(300);
}
void epson_smd_165::handled_variants(UINT32 *variants, int &var_count) const
{
var_count = 0;
variants[var_count++] = floppy_image::SSSD;
variants[var_count++] = floppy_image::DSSD;
}
//------------------------------------------------- //-------------------------------------------------
// epson sd-320 // epson sd-320
// //

View File

@ -199,245 +199,44 @@ protected:
astring try_file(astring location, astring name, bool has_crc, UINT32 crc); astring try_file(astring location, astring name, bool has_crc, UINT32 crc);
}; };
class floppy_3_ssdd : public floppy_image_device {
public: #define DECLARE_FLOPPY_IMAGE_DEVICE(_name, _interface) \
floppy_3_ssdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); class _name : public floppy_image_device { \
virtual ~floppy_3_ssdd(); public: \
virtual void handled_variants(UINT32 *variants, int &var_count) const; _name(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); \
virtual const char *image_interface() const { return "floppy_3"; } virtual ~_name(); \
protected: virtual void handled_variants(UINT32 *variants, int &var_count) const; \
virtual void setup_characteristics(); virtual const char *image_interface() const { return _interface; } \
protected: \
virtual void setup_characteristics(); \
}; };
class floppy_3_dsdd : public floppy_image_device { DECLARE_FLOPPY_IMAGE_DEVICE(floppy_3_ssdd, "floppy_3")
public: DECLARE_FLOPPY_IMAGE_DEVICE(floppy_3_dsdd, "floppy_3")
floppy_3_dsdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); DECLARE_FLOPPY_IMAGE_DEVICE(floppy_35_ssdd, "floppy_3_5")
virtual ~floppy_3_dsdd(); DECLARE_FLOPPY_IMAGE_DEVICE(floppy_35_dd, "floppy_3_5")
virtual void handled_variants(UINT32 *variants, int &var_count) const; DECLARE_FLOPPY_IMAGE_DEVICE(floppy_35_hd, "floppy_3_5")
virtual const char *image_interface() const { return "floppy_3"; } DECLARE_FLOPPY_IMAGE_DEVICE(floppy_35_ed, "floppy_3_5")
protected: DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_sssd_35t, "floppy_5_25")
virtual void setup_characteristics(); DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_sd_35t, "floppy_5_25")
}; DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_sssd, "floppy_5_25")
DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_sd, "floppy_5_25")
DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_ssdd, "floppy_5_25")
DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_dd, "floppy_5_25")
DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_ssqd, "floppy_5_25")
DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_qd, "floppy_5_25")
DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_hd, "floppy_5_25")
DECLARE_FLOPPY_IMAGE_DEVICE(floppy_8_sssd, "floppy_8")
DECLARE_FLOPPY_IMAGE_DEVICE(floppy_8_dssd, "floppy_8")
DECLARE_FLOPPY_IMAGE_DEVICE(floppy_8_ssdd, "floppy_8")
DECLARE_FLOPPY_IMAGE_DEVICE(floppy_8_dsdd, "floppy_8")
DECLARE_FLOPPY_IMAGE_DEVICE(epson_smd_165, "floppy_3_5")
DECLARE_FLOPPY_IMAGE_DEVICE(epson_sd_320, "floppy_5_25")
DECLARE_FLOPPY_IMAGE_DEVICE(epson_sd_321, "floppy_5_25")
DECLARE_FLOPPY_IMAGE_DEVICE(sony_oa_d31v, "floppy_3_5")
DECLARE_FLOPPY_IMAGE_DEVICE(sony_oa_d32w, "floppy_3_5")
DECLARE_FLOPPY_IMAGE_DEVICE(sony_oa_d32v, "floppy_3_5")
class floppy_35_ssdd : public floppy_image_device {
public:
floppy_35_ssdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_35_ssdd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_3_5"; }
protected:
virtual void setup_characteristics();
};
class floppy_35_dd : public floppy_image_device {
public:
floppy_35_dd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_35_dd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_3_5"; }
protected:
virtual void setup_characteristics();
};
class floppy_35_hd : public floppy_image_device {
public:
floppy_35_hd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_35_hd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_3_5"; }
protected:
virtual void setup_characteristics();
};
class floppy_35_ed : public floppy_image_device {
public:
floppy_35_ed(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_35_ed();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_3_5"; }
protected:
virtual void setup_characteristics();
};
class floppy_525_sssd_35t : public floppy_image_device {
public:
floppy_525_sssd_35t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_525_sssd_35t();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_5_25"; }
protected:
virtual void setup_characteristics();
};
class floppy_525_sd_35t : public floppy_image_device {
public:
floppy_525_sd_35t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_525_sd_35t();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_5_25"; }
protected:
virtual void setup_characteristics();
};
class floppy_525_sssd : public floppy_image_device {
public:
floppy_525_sssd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_525_sssd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_5_25"; }
protected:
virtual void setup_characteristics();
};
class floppy_525_sd : public floppy_image_device {
public:
floppy_525_sd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_525_sd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_5_25"; }
protected:
virtual void setup_characteristics();
};
class floppy_525_ssdd : public floppy_image_device {
public:
floppy_525_ssdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_525_ssdd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_5_25"; }
protected:
virtual void setup_characteristics();
};
class floppy_525_dd : public floppy_image_device {
public:
floppy_525_dd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_525_dd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_5_25"; }
protected:
virtual void setup_characteristics();
};
class floppy_525_ssqd : public floppy_image_device {
public:
floppy_525_ssqd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_525_ssqd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_5_25"; }
protected:
virtual void setup_characteristics();
};
class floppy_525_qd : public floppy_image_device {
public:
floppy_525_qd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_525_qd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_5_25"; }
protected:
virtual void setup_characteristics();
};
class floppy_525_hd : public floppy_image_device {
public:
floppy_525_hd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_525_hd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_5_25"; }
protected:
virtual void setup_characteristics();
};
class floppy_8_sssd : public floppy_image_device {
public:
floppy_8_sssd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_8_sssd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_8"; }
protected:
virtual void setup_characteristics();
};
class floppy_8_dssd : public floppy_image_device {
public:
floppy_8_dssd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_8_dssd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_8"; }
protected:
virtual void setup_characteristics();
};
class floppy_8_ssdd : public floppy_image_device {
public:
floppy_8_ssdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_8_ssdd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_8"; }
protected:
virtual void setup_characteristics();
};
class floppy_8_dsdd : public floppy_image_device {
public:
floppy_8_dsdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~floppy_8_dsdd();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_8"; }
protected:
virtual void setup_characteristics();
};
class epson_sd_320 : public floppy_image_device {
public:
epson_sd_320(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~epson_sd_320();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_5_25"; }
protected:
virtual void setup_characteristics();
};
class epson_sd_321 : public floppy_image_device {
public:
epson_sd_321(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~epson_sd_321();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_5_25"; }
protected:
virtual void setup_characteristics();
};
class sony_oa_d31v : public floppy_image_device {
public:
sony_oa_d31v(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~sony_oa_d31v();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_3_5"; }
protected:
virtual void setup_characteristics();
};
class sony_oa_d32w : public floppy_image_device {
public:
sony_oa_d32w(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~sony_oa_d32w();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_3_5"; }
protected:
virtual void setup_characteristics();
};
class sony_oa_d32v : public floppy_image_device {
public:
sony_oa_d32v(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~sony_oa_d32v();
virtual void handled_variants(UINT32 *variants, int &var_count) const;
virtual const char *image_interface() const { return "floppy_3_5"; }
protected:
virtual void setup_characteristics();
};
class floppy_connector: public device_t, class floppy_connector: public device_t,
public device_slot_interface public device_slot_interface
@ -479,6 +278,7 @@ extern const device_type FLOPPY_8_SSSD;
extern const device_type FLOPPY_8_DSSD; extern const device_type FLOPPY_8_DSSD;
extern const device_type FLOPPY_8_SSDD; extern const device_type FLOPPY_8_SSDD;
extern const device_type FLOPPY_8_DSDD; extern const device_type FLOPPY_8_DSDD;
extern const device_type EPSON_SMD_165;
extern const device_type EPSON_SD_320; extern const device_type EPSON_SD_320;
extern const device_type EPSON_SD_321; extern const device_type EPSON_SD_321;
extern const device_type SONY_OA_D31V; extern const device_type SONY_OA_D31V;

View File

@ -59,7 +59,7 @@ const rom_entry *epson_pf10_device::device_rom_region() const
//------------------------------------------------- //-------------------------------------------------
static SLOT_INTERFACE_START( pf10_floppies ) static SLOT_INTERFACE_START( pf10_floppies )
SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) SLOT_INTERFACE( "smd165", EPSON_SMD_165 )
SLOT_INTERFACE_END SLOT_INTERFACE_END
static MACHINE_CONFIG_FRAGMENT( pf10 ) static MACHINE_CONFIG_FRAGMENT( pf10 )
@ -68,7 +68,7 @@ static MACHINE_CONFIG_FRAGMENT( pf10 )
MCFG_CPU_IO_MAP(cpu_io) MCFG_CPU_IO_MAP(cpu_io)
MCFG_UPD765A_ADD("upd765a", false, true) MCFG_UPD765A_ADD("upd765a", false, true)
MCFG_FLOPPY_DRIVE_ADD("upd765a:0", pf10_floppies, "35dd", floppy_image_device::default_floppy_formats) // SMD-165 MCFG_FLOPPY_DRIVE_ADD("upd765a:0", pf10_floppies, "smd165", floppy_image_device::default_floppy_formats)
MCFG_EPSON_SIO_ADD("sio", NULL) MCFG_EPSON_SIO_ADD("sio", NULL)
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -88,7 +88,7 @@ machine_config_constructor epson_pf10_device::device_mconfig_additions() const
//------------------------------------------------- //-------------------------------------------------
epson_pf10_device::epson_pf10_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : epson_pf10_device::epson_pf10_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
device_t(mconfig, EPSON_PF10, "EPSON PF-10 floppy drive", tag, owner, clock, "epson_pf10", __FILE__), device_t(mconfig, EPSON_PF10, "EPSON PF-10 Portable Floppy Unit", tag, owner, clock, "epson_pf10", __FILE__),
device_epson_sio_interface(mconfig, *this), device_epson_sio_interface(mconfig, *this),
m_cpu(*this, "maincpu"), m_cpu(*this, "maincpu"),
m_fdc(*this, "upd765a"), m_fdc(*this, "upd765a"),