Hoi.
Du musst dir folgendes überlegen:
Zuerst musst du den Eintrag deiner Kerneldatei im Rootdir erstmal finden.
Dazu müsstest du die Sektoren in denen das RootDir enthalten ist komplett oder jeweils einzeln in den Speicher laden. (In meinem Loader hab ich sie einzeln geladen).
Wo du diese hinlädst ist vollkommen wurst, solange sie innerhalb der 1 MB Grenze sind und du nicht den Code deines Bootloaders überschreibst
Diese Daten müssen nicht ständig im SPeicher bleiben, da du das Rootdir ja nur einmal durchsuchen musst. Wenn du den Eintrag dort gefunden hast musst du aus diesem Eintrag den Startsektor der Kerneldatei lesen. Sobald du diesen hast ist das Rootdir uninteressant und alle Sektoren können dann auch im Speicher überschrieben werden.
Nun musst du die FAT-Tabelle lesen. Da diese jedoch etwas blöd aufgebaut ist (12 Bit pro Eintrag) empfielt es sich auf jeden Fall diese komplett in den Speicher zu lesen.
Von hier aus kannst du zwei wege gehen.
1. Du liest immer nur den Fat-Eintrag des nächsten Sektors und liest diesen Sektor dann in den Speicher. So hab ich das gemacht. Hier musst du dann aber aufpassen das du die FAT Tabelle im Speicher nicht überschreibst.
2. Du liest alle benötigen Fat Einträge und schreibst (wie von dir vorgeschlagen) alle der Reihe nach auf den Stack und liest dann alle Sektoren in einem Rutsch aus ohne jedesmal erst in der FAT nachzuschauen. In diesem Fall kann dann auch die FAT im Speicher überschrieben werden.
Also du siehst es gibt sehr unterschiedliche Methoden. Deine (2.) finde ich dabei auch garnicht mal so schlecht. Man muß dann nicht so mit dem Speicher aufpassen. Jedoch ist auch Methode 1 sehr einfach umzusetzen, da man ja 1 MB speicher für sich hat und das sollte genügen um da einzelne Bereiche auseinander zu halten.
Wäre gut möglich das dein Bootloader mit deiner Methode vielleicht sogar kompakter ist als meiner. Jedenfalls würde ich mir diesen gerne mal anschauen wenn er denn fertig ist und läuft!
mfg
TeeJay
PS: Find ich gut das du dir selbst mal Gedanken dazu machst und nicht einfach nur Software von anderen kopierst. Auch wenn das natürlich hier bei LowLevel nicht verboten ist. Jedoch ist der Lerneffekt wesentlich höher