Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Re: Digrom2/ATA2
From: gizz (gizz_at_online.fr)
Date: 2002-01-21


I think I found why digrom2 doesn't work for me :

in ata.c, in the loop that writes sectors,

                while ((size -= (512 * sectors_per_cluster)) >= 0)
                  {

There is a test :

                    if (cluster < 2 || (cluster * sectors_per_cluster) >=
sectors_per_fat)
                      break;

That looks to have been pasted from previous MBR & FAT & root dir extraction

but I traced sectors_per_fat which has a value of : 0x2CAC (5855232 bytes
per fat -- correct)

_AND_ when writing ROM1.DAT, which is cluster-located at 0x0D0012,
the test fails because 8 * D0012 == 680090, which is way greater than 2CAC
!!

The thing is, that the cluster value of D0012 seems to be the relative
cluster of ROM1.DAT (proof of that is that if I read the sector at
'first_sector_of_data + sectors_per_cluster * (D0012 - 2)' I get the
effective content of ROM1.DAT), and not a cluster number in the FAT cluster
list...
I wonder if there is not a confusion between cluster number and cluster
value (or maybe it's in my confused head only :)
I'm pessimistic about my conclusion because digrom2 _works_ for you; unless
it is due to the fact that you guys haven't filled your DukeBox as I did,
and therefore, digrom2 works because your ROM?.DAT files are located at the
beginning of the HD...

I'm wrong somewhere ??

(I'm a FAT32 novice :)

--
gizz



Page was last modified "Jan 10 2012" The Rockbox Crew
aaa