Autor Thema: Input bei C-Kernel  (Gelesen 2936 mal)

Scorpion

  • Beiträge: 57
    • Profil anzeigen
Gespeichert
« am: 27. July 2004, 10:19 »
Hi Leute,
ich hab jetzt meinen ersten Kernel in C zum laufen gebracht, aber weiß nicht wie ich den Benutzer etwas eingeben lasse. in einem asm-kernel von mir geht das ja mit folgendem Code:

mov ah,0
int 016h
mov var,al
(var für Variable, is ja klar)

wenn ich das bei meinem C-Kernel einbaue schmiert der sofort ab! ich benutze djgpp + die elfbinutils (für elf-format und binary) und nasm. mein bootloader funzt auch!

Hilfe,
Scorpion

Scorpion

  • Beiträge: 57
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 27. July 2004, 11:58 »
Mach jetzt mit turbo C++ einen kernel. das funktioniert besser. hab schon input hin bekommen, aber ich hab so einen bescheuertn bootloader für fat12. da muss ich dann die kernel.bin auf a: kopieren (!). kann ich davon auch ein image irgendwie machen. bootloader und kernel sind ja nicht zusammen!

Scorpion

GhostCoder

  • Beiträge: 187
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 27. July 2004, 13:18 »
Hiho,

naja, du versucht einen bios interrupt aufzurufen. aber, du bist ja im protected mode, und da gibts sowas nicht mehr, du musst dir also selber einen tastatur treiber schreiben.

außerdem erzeugt djgpp flat pmode code, d.h. das dein code wie oben genannt läuft, muss dein bootloader in den pmode schalten, aber wie soll das dann turboc (das ja segmented rmode code erzeugt) laufen?

Ich denke, du bist der typische "schreiben ohne zu verstehen" os-dever, daher als guter rat:
Du solltest verstehen, was die sachen bedeuten, die du schreibst (oder einfügst, oder was auch immer).
Wenn das nicht der fall ist, wirds du nie weiterkommen...

MfG GhostCoder
A man, a legend!

Scorpion

  • Beiträge: 57
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 27. July 2004, 14:26 »
Danke für die Antwort
Ich hab mir einen bootloader heruntergeladen der die datei kernel.bin auf dem floppy läd (er ist nämlich fat12 kompatibel). geht wunderbar, auch mit einem kernel der in turbo c geschrieben wurde. mein betriebssystem funzt jetzt!

Scorpion

 

Einloggen