diff options
author | Olivier Galibert <galibert@pobox.com> | 2021-01-25 09:50:20 +0100 |
---|---|---|
committer | Olivier Galibert <galibert@pobox.com> | 2021-01-25 09:50:50 +0100 |
commit | cc03eb3b03248632dbc6d0c80762d6fe0b837031 (patch) | |
tree | 4471da3ed99f854b0c4d134c4fa22af19560f428 | |
parent | a77e3cc566c068cde557531c721935c92f0a931c (diff) |
floppy: When the floppy head stays on an unformatted track from more than an hour and ten minutes and reading happens then interval_index*2+1 overflows. Wow. Found and tracked down by Colin Howell, with much thanks.
-rw-r--r-- | src/devices/imagedev/floppy.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/devices/imagedev/floppy.cpp b/src/devices/imagedev/floppy.cpp index c0b459de665..6d87751280e 100644 --- a/src/devices/imagedev/floppy.cpp +++ b/src/devices/imagedev/floppy.cpp @@ -932,7 +932,7 @@ attotime floppy_image_device::get_next_transition(const attotime &from_when) return cache_end_time; // Put a flux transition in the middle of a 4us interval with a 50% probability - int interval_index = (from_when - cache_weak_start).as_ticks(250000); + int64_t interval_index = (from_when - cache_weak_start).as_ticks(250000); if(interval_index < 0) interval_index = 0; attotime weak_time = cache_weak_start + attotime::from_ticks(interval_index*2+1, 500000); |