Autor Thema: Problem mit PMODE und C++ Kernel  (Gelesen 6204 mal)

sp

  • Gast
Gespeichert
« am: 12. September 2004, 10:10 »
Hallo,

ich hab nach dem Tuts, hier auf der Seite, für den PMODE Wechsel und die einbindung eines C++ Kernels was kleines gebastelt. Aber leider funktioniert es nicht so richtig.

Wenn ich es im VirtualPC laufen lassen scheine ich in den PMODE bzw. auch in den C++ Abschnitt zukommen. Also ich sehe zumindestens wie sich der Cursor verschiebt und das mach ich testweise im C++ Abschnitt. Ausgeben tue ich auch was, aber leider tauchen keine Buchstaben auf dem Bildschirm auf.

Wenn ich das ganze auf meinem richtigen PC boote macht er sogar gleich einen Neustart, wobei ich natürlich nicht genau weiß wo.

Der Kernel liegt auf einem FAT12 Medium, geladen wird er von dem Bootloader von John Fine. Der Kernel besteht, wie im Tut beschrieben, aus drei Abschnitten.
Dem Preloader, der in den PMODE wechselt, einem Assembler-Abschnitt der eigentlich nur die "main" Funktion des C++-Abschnitts aufruft und natürlich der C++ Teil.

Preloader
startup.asm
kernel.cpp

Vielleicht hat ja jemand Zeit und Lust sich die Quellcodes mal anzuschauen.
Aber kurz gesagt, ich bin totaler Anfänger also nicht erschrecken :).

Vielen Dank schon mal.

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #1 am: 12. September 2004, 11:56 »
Also erstensmal sehe ich die Funktionen nicht die die Globalen Konstruktoren aufrufen, entweder hast du die woanders oder das kann schonmal garnich gehn^^
Sonst seh ich auf anhieb erstma nix, kann noch sein das der Compiler nich so compiled wie er soll:P Is bei meinem C++ kernel manchma so, nervig
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #2 am: 12. September 2004, 13:16 »
Wie se heißen müsste eigentlich egal sein.
Häng mal bei der cpp Zeile im Makefile die Option -Os ran, als ich das grad eben gemacht hab funzte alles ohne Probleme, wenn das nicht dran steht erzeugt gcc (ich nehm gpp) äussert komischen Code, baut einfach endlos schleifen rein und sowas.
Naja versuchs mal damit
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #3 am: 12. September 2004, 15:19 »
Also deinen Code hab ich nicht probiert, aber ich hab ja auch nen C++ Kernel^^
Ich kenn den Bootloader leider nicht also kann ich dazu nix sagen.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #4 am: 12. September 2004, 18:23 »
Also entweder in deiner Linkerdatei stehtne falsche Addresse(sollte in deinem Falle 0x10000 stehn) oder ich hab momentan echt keine ahnung
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 12. September 2004, 19:17 »
Ähm...wenn ihr auch C++-Kernel hat, kennt ihr nen Compiler für Linux der mit denen arbeiten kann? bei meinen GCC-Versionen unter Linux fehlen immer _CTOR_LIST__ und _DTOR_LIST__ wäre nett wenn mir da einer helfen könnte ^_^ (ich rede sowohl von GCC als auch von G++)

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #6 am: 13. September 2004, 17:54 »
<-Windows User weil meine Hardware nicht mit Linux werkelt^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 13. September 2004, 20:01 »
Naja, ruf ich Constructor und Destructor einfach immer manuel auf bis ich ne Loesung (englisches Tastaturlayout) habe.

 

Einloggen