Lowlevel
Lowlevel => OS-Design => Thema gestartet von: Christian am 20. September 2008, 22:42
-
Hallo,
ich bin dem Tutorial von Lowlevel gefolgt, und nun habe ich hier ein kleines OS, welches einen String ausgibt, mich willkommen heißt, und den Rechner neustartet. So siehtder Source momentan aus:
boot.asm: http://nopaste.tshw.de/1221943033fff02/
kernel.asm: http://nopaste.tshw.de/1221943080fff02/
Wie mache ich jetzt weiter?
Hört sich komisch an, ist aber so :-D.
Grüße,
Christian
-
http://lowlevel.brainsware.org/wiki/index.php/OS-Dev_f%C3%BCr_Einsteiger#Hello_World_und_weiter
-
Hallo,
http://lowlevel.brainsware.org/wiki/index.php/OS-Dev_f%C3%BCr_Einsteiger#Hello_World_und_weiter
der Code ist doch bereits fähig, einen String('Welcome to OS 0.01') auszugeben?
Christian
-
Dann lies ein paar Sätze weiter, bis du an einer Stelle bist, die du noch nicht hast.
-
Aktueller stand des Kernels:http://nopaste.tshw.de/1222015786c42c8/
Allerdings bin ich mir nicht sicher, ob ich das erste Interrupt (s. Ausgabe 3), bzw. das Makro richtig verwendet/plaziert habe. Könnte mir hier jemand Weiterhelfen?
-
du must dein int noch in der idt, glaub ich so heißt das, registrieren sonst kannst du es nicht verwenden und wenn du das gemacht hast kannst du eig den putstr call rausnehmen.
-
Int 0x21 sollte ein DOS-Interrupt sein, welcher natürlich nicht in einem eigenen Bootloader/Kernel verfügbar ist. Du kannst da nur BIOS-Interrupts verwenden.
Das ist Realmode-Code, da heißt das Ding IVT (nicht IDT) = Interrupt Vector Table. Dort stehen die cs:ip Adressen drin, die ein spezifischer Interrupt aufrufen soll. Da schreibt dann DOS zB den Interrupt 0x21 rein und hat dann auch einen Handler für diesen Interrupt, da DOS aber nicht geladen ist, kommt da nichts bei raus.