Index: ff.c =================================================================== --- ff.c(revision 54) +++ ff.c(working copy) @@ -1979,7 +1979,7 @@ { if (disk_read(fs->drv, fs->win, sect, 1) != RES_OK)/* Load boot record */ return 3; -if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55) /* Check record signature (always placed at offset 510 even if the sector size is >512) */ +if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55 && LD_WORD(&fs->win[BS_55AA]) != 0xAB55)/* Check record signature (always placed at offset 510 even if the sector size is >512) */ return 2; if ((LD_DWORD(&fs->win[BS_FilSysType]) & 0xFFFFFF) == 0x544146)/* Check "FAT" string */ @@ -2133,7 +2133,7 @@ fs->fsi_flag = 0; fs->fsi_sector = bsect + LD_WORD(fs->win+BPB_FSInfo); if (disk_read(fs->drv, fs->win, fs->fsi_sector, 1) == RES_OK && - LD_WORD(fs->win+BS_55AA) == 0xAA55 && + (LD_WORD(fs->win+BS_55AA) == 0xAA55 || LD_WORD(fs->win+BS_55AA) == 0xAB55)&& LD_DWORD(fs->win+FSI_LeadSig) == 0x41615252 && LD_DWORD(fs->win+FSI_StrucSig) == 0x61417272) { fs->last_clust = LD_DWORD(fs->win+FSI_Nxt_Free);