Auf virtuelle Diskette Datei brennen, die nicht 512/1024 Bytes gross ist



  • Ich habe hier ein Makefile fuer mein Betriebssystem

    all:
    nasmw -O32 -f bin -o boot.bin boot.asm (512 Bytes)
    nasmw -O32 -f bin -o shell.bin shell.asm (1024 Bytes)
    nasmw -O32 -f bin -o test.bin test.asm (512 Bytes)
    copy /b boot.bin + shell.bin + test.bin OS.bin

    boot.bin liegt im Sektor 1, shell.bin im Sektor 2 und 3, test im Sektor 4.
    Jetzt will ich aber zwischen boot.bin und shell.bin noch eine txt-Datei klemmen, die nicht 512 Bytes gross ist, sondern von mir aus nur 50 Bytes.
    Mein OS startet dann aber nicht richtig, weil im 2. Sektor ja die TXT-Datei ist und shell.bin weiter hinten steht.

    Wie kann ich diesen Fehler beheben?



  • Die einfachste Lösung wäre, die Textdatei auf 512 Bytes zu vergrößern. Also irgendwelche Padding-Bytes da einzufügen.


  • Mod

    Du musst im Bootsektor absichern, dass shell.bin korrekt geladen und aufgerufen wird. Sektorgrenzen einhalten, wie von MrX vorgeschlagen.


Anmelden zum Antworten