diff --git a/src/emu/imagedev/floppy.c b/src/emu/imagedev/floppy.c index 351b3fb388c..75a34de1cae 100644 --- a/src/emu/imagedev/floppy.c +++ b/src/emu/imagedev/floppy.c @@ -51,7 +51,9 @@ const device_type EPSON_SMD_130 = &device_creator; const device_type EPSON_SMD_140 = &device_creator; const device_type EPSON_SMD_150 = &device_creator; const device_type EPSON_SMD_160 = &device_creator; +#endif const device_type EPSON_SMD_165 = &device_creator; +#if 0 const device_type EPSON_SMD_170 = &device_creator; const device_type EPSON_SMD_180 = &device_creator; const device_type EPSON_SMD_240L = &device_creator; @@ -1506,6 +1508,40 @@ void floppy_8_dsdd::handled_variants(UINT32 *variants, int &var_count) const // 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 // diff --git a/src/emu/imagedev/floppy.h b/src/emu/imagedev/floppy.h index 72238402020..a5cbcd87ba7 100644 --- a/src/emu/imagedev/floppy.h +++ b/src/emu/imagedev/floppy.h @@ -199,245 +199,44 @@ protected: astring try_file(astring location, astring name, bool has_crc, UINT32 crc); }; -class floppy_3_ssdd : public floppy_image_device { -public: - floppy_3_ssdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); - virtual ~floppy_3_ssdd(); - virtual void handled_variants(UINT32 *variants, int &var_count) const; - virtual const char *image_interface() const { return "floppy_3"; } -protected: - virtual void setup_characteristics(); -}; -class floppy_3_dsdd : public floppy_image_device { -public: - floppy_3_dsdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); - virtual ~floppy_3_dsdd(); - virtual void handled_variants(UINT32 *variants, int &var_count) const; - virtual const char *image_interface() const { return "floppy_3"; } -protected: - virtual void setup_characteristics(); -}; +#define DECLARE_FLOPPY_IMAGE_DEVICE(_name, _interface) \ + class _name : public floppy_image_device { \ + public: \ + _name(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); \ + virtual ~_name(); \ + virtual void handled_variants(UINT32 *variants, int &var_count) const; \ + virtual const char *image_interface() const { return _interface; } \ + protected: \ + virtual void setup_characteristics(); \ + }; -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(); -}; +DECLARE_FLOPPY_IMAGE_DEVICE(floppy_3_ssdd, "floppy_3") +DECLARE_FLOPPY_IMAGE_DEVICE(floppy_3_dsdd, "floppy_3") +DECLARE_FLOPPY_IMAGE_DEVICE(floppy_35_ssdd, "floppy_3_5") +DECLARE_FLOPPY_IMAGE_DEVICE(floppy_35_dd, "floppy_3_5") +DECLARE_FLOPPY_IMAGE_DEVICE(floppy_35_hd, "floppy_3_5") +DECLARE_FLOPPY_IMAGE_DEVICE(floppy_35_ed, "floppy_3_5") +DECLARE_FLOPPY_IMAGE_DEVICE(floppy_525_sssd_35t, "floppy_5_25") +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_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, 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_SSDD; 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_321; extern const device_type SONY_OA_D31V; diff --git a/src/mess/machine/pf10.c b/src/mess/machine/pf10.c index ce499b8667c..2e35fbd4a69 100644 --- a/src/mess/machine/pf10.c +++ b/src/mess/machine/pf10.c @@ -59,7 +59,7 @@ const rom_entry *epson_pf10_device::device_rom_region() const //------------------------------------------------- static SLOT_INTERFACE_START( pf10_floppies ) - SLOT_INTERFACE( "35dd", FLOPPY_35_DD ) + SLOT_INTERFACE( "smd165", EPSON_SMD_165 ) SLOT_INTERFACE_END static MACHINE_CONFIG_FRAGMENT( pf10 ) @@ -68,7 +68,7 @@ static MACHINE_CONFIG_FRAGMENT( pf10 ) MCFG_CPU_IO_MAP(cpu_io) 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) 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) : - 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), m_cpu(*this, "maincpu"), m_fdc(*this, "upd765a"),