From 48d511a17019a061bc588df6acbd8d3050c3d7db Mon Sep 17 00:00:00 2001 From: tim lindner Date: Sat, 5 Jun 2021 22:44:28 -0700 Subject: wd177x: test to make sure the floppy drive has room for all of the tracks --- src/lib/formats/wd177x_dsk.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/lib/formats/wd177x_dsk.cpp b/src/lib/formats/wd177x_dsk.cpp index 5dbc140a80a..bb9cc1da3a1 100644 --- a/src/lib/formats/wd177x_dsk.cpp +++ b/src/lib/formats/wd177x_dsk.cpp @@ -204,6 +204,18 @@ bool wd177x_format::load(io_generic *io, uint32_t form_factor, const std::vector return false; const format &f = formats[type]; + int max_tracks, max_heads; + image->get_maximal_geometry(max_tracks, max_heads); + + if(f.track_count > max_tracks) { + osd_printf_error("wd177x_format: Number of tracks in image file too high for floppy drive (%d > %d)\n", f.track_count, max_tracks); + return false; + } + + if(f.head_count > max_heads) { + osd_printf_error("wd177x_format: Number of sides in image file too high for floppy drive (%d > %d)\n", f.track_count, max_heads); + return false; + } for(int track=0; track < f.track_count; track++) for(int head=0; head < f.head_count; head++) { -- cgit v1.2.3