Hallo,
ich bin im Moment an einer FAT32 Implementierung auf ARM7. Das ganze 
soll mit der Festplatte meines alten Notebooks laufen.
Es läuft soweit das wichtigste - ich kann Sektoren von der Platte lesen, 
sowie Sektoren schreiben. Habe ich auch schon mittels Disk-Editor 
überprüft.
Auch das Laden der FAT und so weiter klappt.
Womit ich mir jetzt etwas schwer tue: wie finde ich einen gewünschten 
Eintrag in der FAT Directory Structure? Das sind ja immer diese 32 Bytes 
langen Einträge, wo unter anderem auch der (kurze) Dateiname abgelegt 
ist.
Ich habe eine Funktion FindFile, der wird ein String übergeben, z.B. so:
FindFile("/directory/filename.txt")
Die Funktion liefert dann einen Pointer zurück, mit dem das Programm 
dann die Datei lesen bzw. beschreiben kann (das ist aber nicht das 
Problem).
Der Stand bis jetzt:
Ich lade die FAT in einen 1k grossen Puffer. Auch vom Root Directory 
werden die ersten beiden Sektoren in einen Puffer geladen.
Jetzt soll meine Funktion sich durch die Verzeichniseinträge hangeln, 
und als erstes einen Eintrag namens "directory" finden. Problem dabie 
ist aber: Die Dateinamen sind so dämlich formatiert! kurze Dateinamen 
halt. Ich will aber lange. Was ich bisher programmiert habe, um diese 
Dateinamen zu finden, ist ziemlicher murks; könnt ihr mir nicht einen 
Tipp geben, wie es einigermassen elegant geht?
So wie ich mir das vorstelle, wird dann, wenn der Eintrag "directory" 
gefunden wurde, dessen Startcluster eruiert. Dieser wird dann in den 
Buffer geladen, wo vorher das Root-Directory drin war, und die Suche 
beginnt von neuem, diesmal nach einem Eintrag namens "filename.txt".
Es ist also eine rekursive Funktion!
Kann mir wer auf die Sprünge helfen? wie macht ihr das so, mit dem 
Suchen der Einträge?