this bug has been reported earlier by someone else
but is still not corrected.
In dir.c, function dir_findinRootArea(...) the
calculation of number of root directory sectors is
wrong. For 512 bytes per sector and 32 bytes per
directory entry the number of directory entries per
sector is 16 and not 32.
With this bug you'll only be able to access the first
half of the root directory.
Patch is attached.