Hallo zusammen!
Gespannt habe ich heute das Einsteiger-Tutorial hier verfolgt. Leider bin ich dann beim Auslagern der Ausgabe-Funktion und der Clearscreen-Funktion irgendwie hängen geblieben.
Hier mein Quelltext:
#include "main.h"
void main(void)
{
clear_screen();
print_line("Hallo Welt!");
}
void clear_screen()
{
int x;
int y;
for (x = 0; x < 80; x++)
for (y = 0; y < 80; y++)
draw_character(' ', 7, 0, x, y);
}
void print_line(char string[])
{
int i;
for (i = 0; string[i] != '\0'; i++) {
draw_character(string[i], 7, 0, i, 0);
}
}
void draw_character(char c, char forecolour, char backcolour, int x, int y)
{
unsigned short attrib = (backcolour << 4) | (forecolour & 0x0F);
volatile unsigned short *where;
where = 0xB8000 + (y * 80 + x);
*where = c | (attrib << 8);
}
Die Fehlermeldung ist:
~/c-projects/dj-kernel$ make
gcc -m32 -ffreestanding -Wall -g -fno-stack-protector -nostdinc -c -o main.o main.c
main.c: In function ‘draw_character’:
main.c:32: warning: assignment makes pointer from integer without a cast
ld -melf_i386 -Ttext=0x100000 -o kernel boot.o main.o
Eine Antwort wäre sehr nett!
Gute Nacht,
Daniel
P.S.: Achja und der komplette Screen ist Lila beim Ausführen...