summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2014-03-26 14:16:43 +0000
committer Olivier Galibert <galibert@pobox.com>2014-03-26 14:16:43 +0000
commit536dd6392065bc3f5dce2eee2e05f7617028c855 (patch)
tree99a2d416f9211becfb2f6016d171f2075de3e31e /src
parent89c75e9b03f01da5c1eab1c8dfbed52d9424f678 (diff)
floppy: splice-related fixes [O. Galibert]
Diffstat (limited to 'src')
-rw-r--r--src/emu/imagedev/floppy.c9
-rw-r--r--src/lib/formats/mfi_dsk.c2
2 files changed, 11 insertions, 0 deletions
diff --git a/src/emu/imagedev/floppy.c b/src/emu/imagedev/floppy.c
index 4eca8446ae5..562a43b29e5 100644
--- a/src/emu/imagedev/floppy.c
+++ b/src/emu/imagedev/floppy.c
@@ -753,6 +753,15 @@ void floppy_image_device::write_zone(UINT32 *buf, int &cells, int &index, UINT32
}
}
+void floppy_image_device::set_write_splice(attotime when)
+{
+ image_dirty = true;
+ attotime base;
+ int splice_pos = find_position(base, when);
+ image->set_write_splice_position(cyl, ss, splice_pos);
+ logerror("%s: Track %d head %d set splice pos %d\n", tag(), cyl, ss, splice_pos);
+}
+
UINT32 floppy_image_device::get_form_factor() const
{
return form_factor;
diff --git a/src/lib/formats/mfi_dsk.c b/src/lib/formats/mfi_dsk.c
index eca7a00d705..e7ca391ad88 100644
--- a/src/lib/formats/mfi_dsk.c
+++ b/src/lib/formats/mfi_dsk.c
@@ -118,6 +118,8 @@ bool mfi_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
entry *ent = entries;
for(unsigned int cyl=0; cyl != h.cyl_count; cyl++)
for(unsigned int head=0; head != h.head_count; head++) {
+ image->set_write_splice_position(cyl, head, ent->write_splice);
+
if(ent->uncompressed_size == 0) {
// Unformatted track
image->set_track_size(cyl, head, 0);