diag_printf("FAT: FDE acc date: %u\n", dentry->acc_date);
diag_printf("FAT: FDE wrt time: %u\n", dentry->wrt_time);
diag_printf("FAT: FDE wrt date: %u\n", dentry->wrt_date);
- diag_printf("FAT: FDE cluster: %u\n", dentry->cluster);
+ diag_printf("FAT: FDE cluster: %u\n", (dentry->cluster_HI << 16) | dentry->cluster);
diag_printf("FAT: FDE size: %u\n", dentry->size);
}
#endif // TDE
}
// Free file clusters
- free_cluster_chain(disk, raw_dentry.cluster);
+ free_cluster_chain(disk, raw_dentry.cluster | (raw_dentry.cluster_HI << 16));
raw_dentry_set_deleted(disk, &raw_dentry);
err = write_raw_dentry(disk, &file->disk_pos, &raw_dentry);
return err;
CYG_TRACE0(TDE, "different dirs");
- // Moveing around in different dirs
+ // Moving around in different dirs
fatfs_initpos(disk, dir2, &new_pos);
- CYG_TRACE0(TDE, "writting to new dir");
+ CYG_TRACE0(TDE, "writing to new dir");
// Get free dir entry in target dir
CYG_TRACE0(TDE, "deleting from old dir");
- // Deleate dentry at old location
+ // Delete dentry at old location
raw_dentry_set_deleted(disk, &raw_dentry);
raw_dentry.size = 0;
raw_dentry.cluster = 0;
+ raw_dentry.cluster_HI = 0;
err = write_raw_dentry(disk, &target->disk_pos, &raw_dentry);
if (err != ENOERR)
return err;
if (0 == strncmp("..", raw_cdentry.name, 2))
{
- raw_cdentry.cluster = dir2->cluster;
+ raw_cdentry.cluster = dir2->cluster & 0xFFFF;
+ raw_cdentry.cluster_HI = dir2->cluster >> 16;
err = write_raw_dentry(disk, &pos, &raw_cdentry);
if (err != ENOERR)
return err;