summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Stefano <stefano_bodrato@hotmail.com>2018-03-27 01:20:08 +0200
committer Vas Crabb <cuavas@users.noreply.github.com>2018-03-27 10:20:08 +1100
commitc959d88ec524125f73d61510d4843c769da50c02 (patch)
tree8de131acdcc5e70e43fbb44e031b349dea09fae9
parent9a154947d1cb61180eb00bffa919e7921c2d5234 (diff)
Minimal improvements on the disk handling (#3395)
* Keeping the 35 tracks drive as an option * Reducing the crashes a bit more. This helps matching the form_factor and the parameters found in the TeleDisk images, thus exiting before a serious crash. It is NOT enough to improve the 8" disk image handling, nor it solves all the stability problems, but it is a tiny step forwards.
-rw-r--r--src/lib/formats/td0_dsk.cpp4
-rw-r--r--src/mame/drivers/xerox820.cpp7
2 files changed, 8 insertions, 3 deletions
diff --git a/src/lib/formats/td0_dsk.cpp b/src/lib/formats/td0_dsk.cpp
index f31150eb45d..71d6395a70a 100644
--- a/src/lib/formats/td0_dsk.cpp
+++ b/src/lib/formats/td0_dsk.cpp
@@ -909,6 +909,10 @@ bool td0_format::load(io_generic *io, uint32_t form_factor, floppy_image *image)
return false; // single side 3.5?
}
break;
+ case 5:
+ if (form_factor != floppy_image::FF_8)
+ return false; // 8" drive form factor is expected
+ break;
}
static const int rates[3] = { 250000, 300000, 500000 };
diff --git a/src/mame/drivers/xerox820.cpp b/src/mame/drivers/xerox820.cpp
index 776c60729af..3e91fe6e415 100644
--- a/src/mame/drivers/xerox820.cpp
+++ b/src/mame/drivers/xerox820.cpp
@@ -439,7 +439,8 @@ QUICKLOAD_LOAD_MEMBER( xerox820_state, xerox820 )
/* WD1771 Interface */
static SLOT_INTERFACE_START( xerox820_floppies )
- SLOT_INTERFACE( "sa400", FLOPPY_525_SSSD ) // Shugart SA-400
+ SLOT_INTERFACE( "sa400", FLOPPY_525_SSSD_35T ) // Shugart SA-400, 35 trk drive
+ SLOT_INTERFACE( "sa400l", FLOPPY_525_SSSD ) // Shugart SA-400, 40 trk drive
SLOT_INTERFACE( "sa450", FLOPPY_525_DD ) // Shugart SA-450
SLOT_INTERFACE( "sa800", FLOPPY_8_SSDD ) // Shugart SA-800
SLOT_INTERFACE( "sa850", FLOPPY_8_DSDD ) // Shugart SA-850
@@ -635,8 +636,8 @@ MACHINE_CONFIG_START(xerox820_state::xerox820)
MCFG_FD1771_ADD(FD1771_TAG, XTAL(20'000'000)/20)
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(xerox820_state, fdc_intrq_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(xerox820_state, fdc_drq_w))
- MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG":0", xerox820_floppies, "sa400", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG":1", xerox820_floppies, "sa400", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG":0", xerox820_floppies, "sa400l", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG":1", xerox820_floppies, "sa400l", floppy_image_device::default_floppy_formats)
MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO0, XTAL(20'000'000)/8)
MCFG_Z80DART_OUT_TXDA_CB(DEVWRITELINE(RS232_A_TAG, rs232_port_device, write_txd))