Autor Thema: bootloader -> diskette <> wie?!  (Gelesen 4596 mal)

hannibal

  • Host
  • Beiträge: 400
    • Profil anzeigen
    • brainsware - the rock.
Gespeichert
« am: 21. September 2004, 13:37 »
also ich hab jetzt meinen tollen bootloader, der mir dann eine datei von der diskette laden soll - alles an sich kein problem, nur wie zum teufel bring ich den bootloader in den bootsektor der diskette? mit rawwrite ueberschreib ich mir die fat12-formatierung!

bzw, andere frage: der bootloader ladet den kernel aus dem 2.sektor, jedoch wo bleibt dann platz fuer die fat12-formatierung?

kanns sein, dass ich da vielleicht einen denkfehler hab?!

sind wahrscheinlich ganz simple sachen, aber ich mach sowas zum ersten mal.. :)

lg, hannibal
\\o
o//
\o/

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #1 am: 21. September 2004, 13:51 »
Steht eigentlich alles im FAT12 Tut erklärt oder?
Das is das schöne wenn man ein eigenes Dateisstem nimmt, man weiss wie genau aussieht^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

hannibal

  • Host
  • Beiträge: 400
    • Profil anzeigen
    • brainsware - the rock.
Gespeichert
« Antwort #2 am: 21. September 2004, 13:56 »
ja, von der theorie her hab ich auch kein problem, sondern damit, wie ich den bootloader und den kernel auf die diskette bekomme, bzw in ein disketten-image, wie auch immer.

lg, hannibal
\\o
o//
\o/

The-Programmerfish

  • Beiträge: 434
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 21. September 2004, 15:06 »
Du musst den Bootloader so schreiben dass er von Windows als Fat12 Medium erkannt wird sprich mit dem einen Info-Block da am Anfang und dem ganzen Zeug dann kannst du deinen Kernel ganz einfach vom Explorer aus auf die Diskette kopieren, Windows trägt das dann in die Fat Tabelle(n) ein und du musst dann halt dafür sorgen dass dein Bootloader in der Fat Tabelle nach dem Speicherort des Kernels sucht und ihn in den Speicher lädt. Les dir halt das Bootloader Tutorial durch.
<- Verhasst, Verdammt, Vergöttert

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #4 am: 27. September 2004, 23:58 »
Du hast das ganze wohl nit so ganz verstanden.

Du redest davon nen Kernel aus dem 2. Sektor zu laden, willst aber gleichzeitig FAT12 auf der Diskette als Dateisystem haben.

Das geht so ohne nicht.
Entweder deine Diskette hat KEIN Fat12 und du läst den Kernel vom 2. Sektor laden, dann brauchst du dich um nix kümmern, aus das der Kernel geladen wird.

Willst du jedoch Fat12 erhalten, dann schau dir meinen bootloader an. Da ist ganz am Anfang ein paar Variablen eingetragen. Das sind jene die FAT12 benötigt.

Und bei meinem Bootloader kopierst du einfach (per Explorer oder Konsole) den Kernel auf die Diskette und fertig.
----------------------
Redakteur bei LowLevel

hannibal

  • Host
  • Beiträge: 400
    • Profil anzeigen
    • brainsware - the rock.
Gespeichert
« Antwort #5 am: 09. October 2004, 15:31 »
also ich verwend jetzt den bootloader von tj ..nur..wie zum teufel schreib ich den kompilierten bootloader (also den bootsector) auf die diskette?? wenn ich mit rawwrite das image auf die diskette kopier, geht fat12 floeten, obwohl ich den ganzen  header (fast woertlich) kopiert habe.

ich versteh das ganze nicht.. =\

lg, hannibal


EDIT: habs geschafft! .. war ein ganz ein bloeder fehler..meine 8-Byte OsName hab ich bloederweise ueberschritten :D
\\o
o//
\o/

lobmann

  • Beiträge: 243
    • Profil anzeigen
    • http://www.fallek.de.vu
Gespeichert
« Antwort #6 am: 09. October 2004, 15:52 »
du hast bestimmt irgendwo im header nen zeichen zu wenig oder so
Man kann doch nem alten Mann nicht in den Bart spucken und sagen es hat geschneit

Highway

  • Beiträge: 10
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 30. November 2004, 16:48 »
Ich benutze den Bootloader von TJ unverändert. Schreibe Ihn mit RaWrite2 in den ersten Sector der Diskette. Aber dennoch sagt mir Windows das die Diskette nicht formatiert ist  :( .

Solange Windows die Diskette nicht als FAT12 erkennt, kann ich mir das abschmatzen meinen Kernel einfach so auf die Diskette zu kopieren.

Probleme über Probleme  :cry:

Weiß einer ein Rat?

PS: Wenn wir schon bei Problemen sind. Warum kennt der Linker LD den aout Parameter nicht  :?:

Gruß Highway

elfish_rider

  • Beiträge: 293
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 30. November 2004, 17:22 »
muss man nicht den Bootsektor gewöhnlich schreiben, bis auf die Sprungadresse, die dann auf den Sektor nach dem Bootsektor zeigt, in dem der Loader ist. Mann muss nur noch RsvdSecCnt, Anzahl reservierte Sektoren vergrössern im Bootsektor. Der Rest der Diskette kann als normale FAT12 verwendet werden. Bitte korrigiert mich, ist nur eine Vermutung

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #9 am: 30. November 2004, 17:23 »
Moin.

Der Fehler liegt bei mir glaub ich.
In Tutorial ist ein kleiner Fehler im Bootloader. Eine Variable für FAT12 war da nicht korrekt.

Hier ist nochmal die Binary:
http://www.jay-code.de/files/bootsec.bin

Und hier der Source:
http://www.jay-code.de/files/bootsec.asm

Beides verwende ich bei mir uns es klappt einwandfrei.
----------------------
Redakteur bei LowLevel

 

Einloggen