Autor Thema: Code zum aktivieren des A20-Gates  (Gelesen 4794 mal)

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« am: 09. July 2006, 18:23 »
Für das aktuelle Problem, siehe unten

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #1 am: 09. July 2006, 19:20 »
Hi,

also soviel kann ich sagen: Der Kernel wird nicht richtig geladen. Die CPU führt ihn nicht aus. Also wird der Fehler wohl im Bootloader liegen. Wo genau weiß ich aber nicht (kein bock den Code durchzusuchen). Vielleicht hilfts ja.

bitmaster
In the Future everyone will need OS-64!!!

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #2 am: 10. July 2006, 04:16 »
...
In the Future everyone will need OS-64!!!

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 10. July 2006, 09:35 »
Zitat
also soviel kann ich sagen: Der Kernel wird nicht richtig geladen. Die CPU führt ihn nicht aus


woraus schliest du das denn?


ich denk mal das könnte gut am Disketten-Lese-Interrupt liegen, die sind in den BIOSs so unterschiedlich,
ich bau am besten mal ne Funktion ein, die den Inhalt von dem Bereich ausgibt, an den ich den Kernel lade

EDIT:
ich hab jetzt nach geguckt:
wenn ich einfach nicht vom Assemblerkernel in den C-Kernel springe funktioniert alles wie es soll,
d.h. der Kernel wird richtig geladen

dann muss der Fehler woanders sein

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #4 am: 10. July 2006, 15:05 »
Zitat
ich hab jetzt nach geguckt:
wenn ich einfach nicht vom Assemblerkernel in den C-Kernel springe funktioniert alles wie es soll,
d.h. der Kernel wird richtig geladen

dann muss der Fehler woanders sein
Nein, der Kernel wird nicht geladen. Schreibe doch mal zum Test in den Kernel:

mov ah,0Eh
mov al,"X"
int 10h
jmp $

Dann wird kein X ausgegeben, was bedeutet das der Kernel nicht geladen wird.

bitmaster

EDIT: Im übringen ist dein bootloader ziemlich schlampig.
In the Future everyone will need OS-64!!!

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 11. July 2006, 10:00 »
Zitat
Dann wird kein X ausgegeben, was bedeutet das der Kernel nicht geladen wird.


natürlich nicht, im Pmode gibts keine Bios-Interrupts ;-)

Zitat
Im übringen ist dein bootloader ziemlich schlampig.


was ist an dem schlampig?

Termite

  • Beiträge: 239
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 11. July 2006, 12:44 »
Ich glaub er nimt sich die Programierrichtlienen der Klingonen zu herze.

9) “Einrückungen im Code?! Ich zeige Dir wie man einrückt wenn ich Deinen Schädel einrücke.”

4) “Ein ECHTER klingonischer Programmierer kommentiert seinen Code nicht!”

http://www.c-plusplus.de/klingonen.htm

gruss

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #7 am: 11. July 2006, 14:47 »
@scales of justice: Ou, habe nicht gemerkt das du im PM bist.  Aber stimmt, jetzt wo du es sagst habe ich mir deinen bootloader noch mal genauer angeschaut. Trozdem finde ich den recht schlampig. Da hat mein ja keinen Durchblick mehr. Hoffentlich wird dein Kernel nicht auch so. Dann wird der bestimmt nicht größer als nen paar KByte.

@Termite: Hehe, der war gut. ^^

bitmaster
In the Future everyone will need OS-64!!!

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 11. July 2006, 14:55 »
der Kernel ist ja größtenteils C, deswegen ist der einieges übersichtlicher,
glaub da sind dogar 2 Kommentare oder so drin

also bist du dir nun sicher dass der Kernel nicht geladen wird, oder nicht?

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 11. July 2006, 16:07 »
jetzt weis ichs:
es liegt am A20-Gate, das wird nicht aktiviert,
der Code den ich benutz (der von Tee-Jay) probiert glaube ich auch nur eine Variante, und die scheint Qemu nich zu mögen


EDIT:
ich kapier das nicht, ich hab jetzt bestimmt 5 verschiedene Codes ausprobiert, aber ich bekom in Qemu das A20-Gate einfach nicht an
er zeit immer A20=1 an, und da er das auch beim start einzeigt, schliese ich, dass es bedeutet, dass es noch nicht aktiviert ist

hat irgendjemand n'Stück Code mit dem man das A20-Gate auch bei Qemu anbekommt?
(nein ich werde nicht GRUB o.ä. benutzen ;-) )

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 11. July 2006, 20:48 »
Vielleicht nicht benutzen, um dein OS zu booten, aber die passenden Codeschnipsel findest du darin sicher.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #11 am: 11. July 2006, 23:49 »
Jo, ist mir auch aufgefallen. Qemu sagt immer A20=1. Das bedeutet warscheinlich wie blueXseven sagt das es von Anfang an aktiviert ist. Denn bei mir bleibt es immer A20=1. Aber meine Progs die das 21 Bit nutzen funktionieren auch mit Qemu.

bitmaster
In the Future everyone will need OS-64!!!

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 12. July 2006, 09:13 »
man, das wär auch zu einfach gewesen, aber ich find den Fehler noch...
...sonst post ich nochmal den aktuellen Code

 

Einloggen