From 0c5e9a05600f1628495ca43832bddc02053bb928 Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Mon, 25 Jan 2021 09:50:20 +0100 Subject: 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. --- src/devices/imagedev/floppy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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); -- cgit v1.2.3