diff --git a/hash/nascom_flop.xml b/hash/nascom_flop.xml
new file mode 100644
index 00000000000..e4b9afd44f8
--- /dev/null
+++ b/hash/nascom_flop.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+ Asteroids
+ 1985
+ Richard C. Espley
+
+
+
+
+
+
+
+
+ AVC Demo Disk
+ 1982
+ Lucas Logic
+
+
+
+
+
+
+
+
+ Tools & Toolkits
+ 198?
+ <unknown>
+
+
+
+
+
+
+
+
+ Nascom Disk Adventure
+ 1983
+ Richard C. Espley
+
+
+
+
+
+
+
+
+ NAS-Sembler 1.5
+ 1982
+ Lucas Logic
+
+
+
+
+
+
+
+
+ NAS-DOS Utility Disk
+ 1982
+ M F Hessey
+
+
+
+
+
+
+
+
diff --git a/src/emu/bus/nasbus/floppy.c b/src/emu/bus/nasbus/floppy.c
index 7b0951f2e0f..5eebd9a10c6 100644
--- a/src/emu/bus/nasbus/floppy.c
+++ b/src/emu/bus/nasbus/floppy.c
@@ -21,7 +21,8 @@ FLOPPY_FORMATS_MEMBER( nascom_fdc_device::floppy_formats )
FLOPPY_FORMATS_END
static SLOT_INTERFACE_START( nascom_floppies )
- SLOT_INTERFACE("525qd", FLOPPY_525_QD)
+ SLOT_INTERFACE("55e", TEAC_FD_55E)
+ SLOT_INTERFACE("55f", TEAC_FD_55F)
SLOT_INTERFACE_END
//-------------------------------------------------
@@ -32,10 +33,12 @@ SLOT_INTERFACE_END
static MACHINE_CONFIG_FRAGMENT( nascom_fdc )
MCFG_FD1793x_ADD("fd1793", XTAL_16MHz / 4 / 4)
- MCFG_FLOPPY_DRIVE_ADD("fd1793:0", nascom_floppies, "525qd", nascom_fdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fd1793:1", nascom_floppies, NULL, nascom_fdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fd1793:2", nascom_floppies, NULL, nascom_fdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fd1793:3", nascom_floppies, NULL, nascom_fdc_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("fd1793:0", nascom_floppies, "55f", nascom_fdc_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("fd1793:1", nascom_floppies, "55f", nascom_fdc_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("fd1793:2", nascom_floppies, NULL, nascom_fdc_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("fd1793:3", nascom_floppies, NULL, nascom_fdc_device::floppy_formats)
+
+ MCFG_SOFTWARE_LIST_ADD("floppy_list", "nascom_flop")
MACHINE_CONFIG_END
machine_config_constructor nascom_fdc_device::device_mconfig_additions() const
@@ -71,6 +74,7 @@ nascom_fdc_device::nascom_fdc_device(const machine_config &mconfig, const char *
void nascom_fdc_device::device_start()
{
+ save_item(NAME(m_select));
}
//-------------------------------------------------
diff --git a/src/emu/imagedev/floppy.c b/src/emu/imagedev/floppy.c
index 3cf4b816649..871907150ca 100644
--- a/src/emu/imagedev/floppy.c
+++ b/src/emu/imagedev/floppy.c
@@ -99,8 +99,8 @@ const device_type SONY_OA_D32V = &device_creator;
#if 0
const device_type TEAC_FD_55A = &device_creator;
const device_type TEAC_FD_55B = &device_creator;
-const device_type TEAC_FD_55E = &device_creator;
#endif
+const device_type TEAC_FD_55E = &device_creator;
const device_type TEAC_FD_55F = &device_creator;
const device_type TEAC_FD_55G = &device_creator;
@@ -1774,6 +1774,41 @@ void sony_oa_d32v::handled_variants(UINT32 *variants, int &var_count) const
variants[var_count++] = floppy_image::SSDD;
}
+//-------------------------------------------------
+// TEAC FD-55E
+//
+// track to track: 3 ms
+// average: 94 ms
+// setting time: 15 ms
+// motor start time: 400 ms
+//
+//-------------------------------------------------
+
+teac_fd_55e::teac_fd_55e(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ floppy_image_device(mconfig, TEAC_FD_55F, "TEAC FD-55E FDD", tag, owner, clock, "teac_fd_55e", __FILE__)
+{
+}
+
+teac_fd_55e::~teac_fd_55e()
+{
+}
+
+void teac_fd_55e::setup_characteristics()
+{
+ form_factor = floppy_image::FF_525;
+ tracks = 80;
+ sides = 1;
+ set_rpm(300);
+}
+
+void teac_fd_55e::handled_variants(UINT32 *variants, int &var_count) const
+{
+ var_count = 0;
+ variants[var_count++] = floppy_image::SSSD;
+ variants[var_count++] = floppy_image::SSDD;
+ variants[var_count++] = floppy_image::SSQD;
+}
+
//-------------------------------------------------
// TEAC FD-55F
//
diff --git a/src/emu/imagedev/floppy.h b/src/emu/imagedev/floppy.h
index 69a67c0c260..0f36f70d7b7 100644
--- a/src/emu/imagedev/floppy.h
+++ b/src/emu/imagedev/floppy.h
@@ -242,6 +242,7 @@ 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")
+DECLARE_FLOPPY_IMAGE_DEVICE(teac_fd_55e, "floppy_5_25")
DECLARE_FLOPPY_IMAGE_DEVICE(teac_fd_55f, "floppy_5_25")
DECLARE_FLOPPY_IMAGE_DEVICE(teac_fd_55g, "floppy_5_25")
DECLARE_FLOPPY_IMAGE_DEVICE(alps_3255190x, "floppy_5_25")
@@ -293,6 +294,7 @@ extern const device_type EPSON_SD_321;
extern const device_type SONY_OA_D31V;
extern const device_type SONY_OA_D32W;
extern const device_type SONY_OA_D32V;
+extern const device_type TEAC_FD_55E;
extern const device_type TEAC_FD_55F;
extern const device_type TEAC_FD_55G;
extern const device_type ALPS_3255190x;
diff --git a/src/lib/formats/nascom_dsk.c b/src/lib/formats/nascom_dsk.c
index 9d1de0dac57..60a755357d8 100644
--- a/src/lib/formats/nascom_dsk.c
+++ b/src/lib/formats/nascom_dsk.c
@@ -31,14 +31,14 @@ const char *nascom_format::extensions() const
const nascom_format::format nascom_format::formats[] =
{
- { // 360k 5 1/4 inch double density single sided
- floppy_image::FF_525, floppy_image::SSQD, floppy_image::MFM,
- 2000, 16, 80, 1, 256, {}, 1, {}, 32, 22, 54
- },
{ // 720k 5 1/4 inch double density double sided
floppy_image::FF_525, floppy_image::DSQD, floppy_image::MFM,
2000, 16, 80, 2, 256, {}, 1, {}, 32, 22, 54
},
+ { // 360k 5 1/4 inch double density single sided
+ floppy_image::FF_525, floppy_image::SSQD, floppy_image::MFM,
+ 2000, 16, 80, 1, 256, {}, 1, {}, 32, 22, 54
+ },
{}
};