Previous 199869 Revisions Next

r19152 Monday 26th November, 2012 at 16:00:07 UTC by Curt Coder
(MESS) Added some floppy formats and TWOSID signal. (nw)
[src/emu/imagedev]floppy.c floppy.h

trunk/src/emu/imagedev/floppy.c
r19151r19152
1818const device_type FLOPPY_35_DD_NOSD = &device_creator<floppy_35_dd_nosd>;
1919const device_type FLOPPY_35_HD = &device_creator<floppy_35_hd>;
2020const device_type FLOPPY_35_ED = &device_creator<floppy_35_ed>;
21const device_type FLOPPY_525_SSSD_35T = &device_creator<floppy_525_sssd_35t>;
22const device_type FLOPPY_525_SSSD = &device_creator<floppy_525_sssd>;
2123const device_type FLOPPY_525_SSDD = &device_creator<floppy_525_ssdd>;
2224const device_type FLOPPY_525_DD = &device_creator<floppy_525_dd>;
2325const device_type FLOPPY_525_QD = &device_creator<floppy_525_qd>;
2426const device_type FLOPPY_525_HD = &device_creator<floppy_525_hd>;
2527const device_type FLOPPY_8_SSSD = &device_creator<floppy_8_sssd>;
28const device_type FLOPPY_8_SSDD = &device_creator<floppy_8_ssdd>;
2629const device_type FLOPPY_8_DSDD = &device_creator<floppy_8_dsdd>;
2730
2831const floppy_format_type floppy_image_device::default_floppy_formats[] = {
r19151r19152
378381   return index_timer->elapsed().as_double();
379382}
380383
384bool floppy_image_device::twosid_r()
385{
386   int tracks = 0, heads = 0;
387
388   if (image) image->get_actual_geometry(tracks, heads);
389
390   return heads == 2;
391}
392
381393void floppy_image_device::stp_w(int state)
382394{
383395    if ( stp != state ) {
r19151r19152
928940   variants[var_count++] = floppy_image::DSED;
929941}
930942
943floppy_525_sssd_35t::floppy_525_sssd_35t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
944   floppy_image_device(mconfig, FLOPPY_525_SSSD_35T, "5.25\" single-sided single density 35-track floppy drive", tag, owner, clock)
945{
946}
947
948floppy_525_sssd_35t::~floppy_525_sssd_35t()
949{
950}
951
952void floppy_525_sssd_35t::setup_characteristics()
953{
954   form_factor = floppy_image::FF_525;
955   tracks = 35;
956   sides = 1;
957   set_rpm(300);
958}
959
960void floppy_525_sssd_35t::handled_variants(UINT32 *variants, int &var_count) const
961{
962   var_count = 0;
963   variants[var_count++] = floppy_image::SSSD;
964}
965
966floppy_525_sssd::floppy_525_sssd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
967   floppy_image_device(mconfig, FLOPPY_525_SSSD, "5.25\" single-sided single density floppy drive", tag, owner, clock)
968{
969}
970
971floppy_525_sssd::~floppy_525_sssd()
972{
973}
974
975void floppy_525_sssd::setup_characteristics()
976{
977   form_factor = floppy_image::FF_525;
978   tracks = 42;
979   sides = 1;
980   set_rpm(300);
981}
982
983void floppy_525_sssd::handled_variants(UINT32 *variants, int &var_count) const
984{
985   var_count = 0;
986   variants[var_count++] = floppy_image::SSSD;
987}
988
931989floppy_525_ssdd::floppy_525_ssdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
932990   floppy_image_device(mconfig, FLOPPY_525_SSDD, "5.25\" single-sided double density floppy drive", tag, owner, clock)
933991{
r19151r19152
10561114   variants[var_count++] = floppy_image::SSSD;
10571115}
10581116
1117floppy_8_ssdd::floppy_8_ssdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
1118   floppy_image_device(mconfig, FLOPPY_8_DSDD, "8\" double density single sided floppy drive", tag, owner, clock)
1119{
1120}
1121
1122floppy_8_ssdd::~floppy_8_ssdd()
1123{
1124}
1125
1126void floppy_8_ssdd::setup_characteristics()
1127{
1128   form_factor = floppy_image::FF_8;
1129   tracks = 77;
1130   sides = 1;
1131   motor_always_on = true;
1132   set_rpm(360);
1133}
1134
1135void floppy_8_ssdd::handled_variants(UINT32 *variants, int &var_count) const
1136{
1137   var_count = 0;
1138   variants[var_count++] = floppy_image::SSSD;
1139   variants[var_count++] = floppy_image::SSDD;
1140}
1141
10591142floppy_8_dsdd::floppy_8_dsdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
10601143   floppy_image_device(mconfig, FLOPPY_8_DSDD, "8\" double density double sided floppy drive", tag, owner, clock)
10611144{
trunk/src/emu/imagedev/floppy.h
r19151r19152
9696   bool trk00_r() { return cyl != 0 || !image; }
9797   int idx_r() { return idx; }
9898   bool ss_r() { return ss; }
99   bool twosid_r();
99100
100101   void stp_w(int state);
101102   void dir_w(int state) { dir = state; }
r19151r19152
252253   virtual void setup_characteristics();
253254};
254255
256class floppy_525_sssd_35t : public floppy_image_device {
257public:
258   floppy_525_sssd_35t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
259   virtual ~floppy_525_sssd_35t();
260   virtual void handled_variants(UINT32 *variants, int &var_count) const;
261   virtual void device_config_complete() { m_shortname = "floppy_525_sssd_35t"; }
262   virtual const char *image_interface() const { return "floppy_5_25"; }
263protected:
264   virtual void setup_characteristics();
265};
266
267class floppy_525_sssd : public floppy_image_device {
268public:
269   floppy_525_sssd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
270   virtual ~floppy_525_sssd();
271   virtual void handled_variants(UINT32 *variants, int &var_count) const;
272   virtual void device_config_complete() { m_shortname = "floppy_525_sssd"; }
273   virtual const char *image_interface() const { return "floppy_5_25"; }
274protected:
275   virtual void setup_characteristics();
276};
277
255278class floppy_525_ssdd : public floppy_image_device {
256279public:
257280   floppy_525_ssdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
r19151r19152
307330   virtual void setup_characteristics();
308331};
309332
333class floppy_8_ssdd : public floppy_image_device {
334public:
335   floppy_8_ssdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
336   virtual ~floppy_8_ssdd();
337   virtual void handled_variants(UINT32 *variants, int &var_count) const;
338   virtual void device_config_complete() { m_shortname = "floppy_8_ssdd"; }
339   virtual const char *image_interface() const { return "floppy_8"; }
340protected:
341   virtual void setup_characteristics();
342};
343
310344class floppy_8_dsdd : public floppy_image_device {
311345public:
312346   floppy_8_dsdd(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
r19151r19152
345379extern const device_type FLOPPY_35_DD_NOSD;
346380extern const device_type FLOPPY_35_HD;
347381extern const device_type FLOPPY_35_ED;
382extern const device_type FLOPPY_525_SSSD_35T;
383extern const device_type FLOPPY_525_SSSD;
348384extern const device_type FLOPPY_525_SSDD;
349385extern const device_type FLOPPY_525_DD;
350386extern const device_type FLOPPY_525_QD;
351387extern const device_type FLOPPY_525_HD;
352388extern const device_type FLOPPY_8_SSSD;
389extern const device_type FLOPPY_8_SSDD;
353390extern const device_type FLOPPY_8_DSDD;
354391
355392#endif /* FLOPPY_H */

Previous 199869 Revisions Next


© 1997-2024 The MAME Team