diff --git a/src/lib/formats/flopimg.cpp b/src/lib/formats/flopimg.cpp index 0bdec18d201..9322551124b 100644 --- a/src/lib/formats/flopimg.cpp +++ b/src/lib/formats/flopimg.cpp @@ -2986,8 +2986,14 @@ std::vector> floppy_image_format_t::extract_sectors_from_tr auto &sdata = sector_data[se]; uint8_t ca = 0, cb = 0, cc = 0; - uint32_t hstate = (nib[pos] << 8) | nib[pos + 1]; - pos += 2; + uint32_t hstate = (nib[pos] << 8); + pos ++; + if(pos == nib.size()) + pos = 0; + hstate |= nib[pos]; + pos ++; + if(pos == nib.size()) + pos = 0; for(;;) { hstate = ((hstate << 8) | nib[pos]) & 0xffffff; pos ++;