ran across this when trying to debug a different issue
by default we can only get total sector size from the T/S lists
(which is only a multiple of 256 bytes) but in addition A (basic)
and B (binary) files also tell you the exact length. So we used that
to truncate to the exact length
Only it turns out some programs (I'm looking at you, cracked version
of WAVY NAVY) intentionally set the file size to be wrong and so
we were truncating things improperly
I think this updated code is a bit more clear. Hopefully it doesn't
break anything, I need a better test suite.