Eigener Bootloader — Änderungen 7616 → 7618

Zeile 123: Zeile 123:
 
Ein zweites Problem, das auf uns zukommen wird, dass die 512 Bytes abzüglich des Boot-Parameter-Block (kurz BPB) nicht ausreichen werden. Was also tun?
 
Ein zweites Problem, das auf uns zukommen wird, dass die 512 Bytes abzüglich des Boot-Parameter-Block (kurz BPB) nicht ausreichen werden. Was also tun?
  
−
FAT bietet die Möglichkeit, zusätzlichen Code hinter den Bootsektor zu heften und diesen zu den reservierten Sektoren einreiht. Allerdings müsste dann neu formatiert werden, zumidest bei FAT12 und FAT16. Bei FAT32 hat man dieses Problem berücksichtig.
+
FAT bietet die Möglichkeit, zusätzlichen Code hinter den Bootsektor zu heften und diesen zu den reservierten Sektoren einreiht. Allerdings müsste dann neu formatiert werden, zumindest bei FAT12 und FAT16. Bei FAT32 hat man dieses Problem berücksichtig.
  
 
Eine andere Alternative wäre, das man diesen zusätzlichen Code in den Bootloader verfrachtet, gleich an den Anfang, denn dieser wird ja eh vom Bootsektor geladen.
 
Eine andere Alternative wäre, das man diesen zusätzlichen Code in den Bootloader verfrachtet, gleich an den Anfang, denn dieser wird ja eh vom Bootsektor geladen.
  
 
Aber treten wir erst einmal wieder etwas auf die Bremse und fangen mal mit FAT12 an. Da FAT16 bis auf die Adressbreite der Clusteradressierung identisch ist, nehmen wir es gleich mit an Bord.
 
Aber treten wir erst einmal wieder etwas auf die Bremse und fangen mal mit FAT12 an. Da FAT16 bis auf die Adressbreite der Clusteradressierung identisch ist, nehmen wir es gleich mit an Bord.
 +
 +
 +
{{Hinweis|Text=Man sollte sich unbedingt Gedanken machen, wohin man den Bootloader lädt, den Kernel, und so weiter. Um unnötige Fehler zu vermeiden, ist es unabdingbar hierfür eine Includedatei anzulegen, die global alle wichtigen Adressen und Segmente als Konstanten enthält.
 +
 +
<asm>
 +
;; Real-Mode Bootloader (RM_BL)
 +
;; #0001
 +
;
 +
RM_BL_BEGIN        equ    000010000h
 +
RM_BL_END          equ    00004FFFFh
 +
RM_BL_LENGHT        equ    RM_BL_END - RM_BL_BEGIN + 1
 +
</asm>}}
  
  
Zeile 234: Zeile 246:
 
====FAT32====
 
====FAT32====
 
:''(Demnächst)''
 
:''(Demnächst)''
−
 
  
 
===Stage 2: Bootloader===
 
===Stage 2: Bootloader===