diff options
author | 2014-03-26 14:16:43 +0000 | |
---|---|---|
committer | 2014-03-26 14:16:43 +0000 | |
commit | 536dd6392065bc3f5dce2eee2e05f7617028c855 (patch) | |
tree | 99a2d416f9211becfb2f6016d171f2075de3e31e /src | |
parent | 89c75e9b03f01da5c1eab1c8dfbed52d9424f678 (diff) |
floppy: splice-related fixes [O. Galibert]
Diffstat (limited to 'src')
-rw-r--r-- | src/emu/imagedev/floppy.c | 9 | ||||
-rw-r--r-- | src/lib/formats/mfi_dsk.c | 2 |
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); |