Hallo,
nachdem Grub meinen C kernel gebootet hat, passiert nicht, also der Monitor bleibt so, wie er war
Hier mal meine Dateien:
kernel.c:
headers/multiboot.h:
headers/stdio.h:
Weiß jemand, was ich falsch mache?
Viele Grüße,
Johannes
nachdem Grub meinen C kernel gebootet hat, passiert nicht, also der Monitor bleibt so, wie er war
Hier mal meine Dateien:
kernel.c:
Code: [Auswählen]
#include "./headers/multiboot.h"
#include "./headers/stdio.h"
int main()
{
ClearScreen();
char *Text = "Welcome to Protected Mode";
char *VideoMem = (char*)0xB8000;
while(*Text)
{
*VideoMem = *Text;
*VideoMem++;
*VideoMem = 7;
*VideoMem++;
*Text++;
}
return(0);
}
headers/multiboot.h:
Code: [Auswählen]
int main(void);
const unsigned MultibootHeader[12] =
{
0x1BADB002, // der magische Wert
0x00000000, // die Flags
0xE4524FFE, // die Checksumme
(unsigned) MultibootHeader, // Offset des Headers
(unsigned) main, // Offset von main() als Beginn des Code Segments
0x00000000, // Data Segment, da scheißen wir drauf
0x00000000, // BSS Segment, wer braucht`n sowas?
(unsigned) main, // nochmal main(), diesmal als Entry Point
0x00000000, // Grafik? Nein, danke!
0x00000050, // 80 Spalten
0x00000019, // 25 Zeilen
0x00000000 // 0 BPP, wir sind im Text-Modus
};
headers/stdio.h:
Code: [Auswählen]
#define COLS 80
#define ROWS 25
void ClearScreen(void);
void ClearScreen(void)
{
char *VideoMem = (char*)0xB8000;
int i;
for(i = 0; i == 2000; i++)
{
*VideoMem = ' ';
*VideoMem++;
*VideoMem = ' ';
*VideoMem++;
}
}
Weiß jemand, was ich falsch mache?
Viele Grüße,
Johannes

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert


