Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - JG

Seiten: 1 [2] 3 4 ... 10
21
Offtopic / inline ASM (GCC)
« am: 01. March 2006, 15:33 »
Hallo,
ich bräuchte mal Hilfe bei inline ASM...
Ich brauch eine Funktion, die Sachen an Ports schicken kann (IN, OUT).
Kann mir da mal jemand helfen, weil ich bekomm das nicht hin (weil das ist ja GAS SAM Syntax)


Viele Grüße,
   Johannes
22
OS-Design / Nach dem Booten des Kernels passiert nichts....
« am: 01. March 2006, 15:19 »
Ups....
Ja, mein Kernel ist im ELF-Format kompiliert..
Und wie mach ich das nun, dass *cursor auf die physikalische Adresse Zeigt?
23
OS-Design / Nach dem Booten des Kernels passiert nichts....
« am: 01. March 2006, 10:22 »
Hallo,
so, ich hab nun etwas weiter gearbeitet...
So sieht meine printf Funktion aus:

char *cursor = (char*)0xB8000;
int col = 1;
int row = 1;


void printf(char *text, int color)
{
while(*text)
{
*cursor = *text;
cursor++;
*cursor = color;
cursor++;
text++;
}
}


Doch leider gibt sie nichts aus....

Ich hab mir den Quellcode nun schon tausendmal angeschaut, aber ich finde den Fehler nicht  :roll:
Wisst ihr, was ich mal wieder falsch mache?
24
OS-Design / Grub kompatiblen C Kernel
« am: 28. February 2006, 16:02 »
Hallo,
danke ;)
So halb hab ich das verstanden *g*
Nur ich hab eine Frage:
Zitat

Ich gehe jetzt davon aus dass dein Entry Point in einer Assembler-Datei liegt:

Was ist ein "Entry Point"? Und ich habe keine Assembler-Datei, mein Kernel ist komplett in C geschrieben. Wie kann ich die 2 Register dann auf den Stack pushen?

Und was ist die "Magic Number"?


Viele Grüße,
   Johannes
25
OS-Design / Nach dem Booten des Kernels passiert nichts....
« am: 28. February 2006, 12:36 »
Ich habs nun umgeändert, aber es geht immernoch nicht :(
Nun werd ich mir erstmal das pointer kapitel in meinem C Buch durchlesen *g*
26
OS-Design / Nach dem Booten des Kernels passiert nichts....
« am: 28. February 2006, 11:17 »
Dann kommen Fehler beim Kompilieren:

In file included from kernel.c:2:
./headers/stdio.h: In function ‘ClearScreen’:
./headers/stdio.h:15: warning: assignment makes pointer from integer without a cast
./headers/stdio.h:17: warning: assignment makes pointer from integer without a cast
kernel.c: In function ‘main’:
kernel.c:13: warning: assignment makes pointer from integer without a cast
kernel.c:15: warning: assignment makes pointer from integer without a cast

27
OS-Design / Nach dem Booten des Kernels passiert nichts....
« am: 28. February 2006, 10:04 »
Hier ist es aber auch so gemacht:
http://www.jay-code.de/scripts/htmlgenerator.php?page=ckernel&directory=tutorials  :roll:

Ich mag keine Pointer....


Viele Grüße,
   Johannes
28
OS-Design / Nach dem Booten des Kernels passiert nichts....
« am: 28. February 2006, 09:02 »
Hallo,
nachdem Grub meinen C kernel gebootet hat, passiert nicht, also der Monitor bleibt so, wie er war  :roll:
Hier mal meine Dateien:
kernel.c:

#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:

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:

#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
29
OS-Design / Grub kompatiblen C Kernel
« am: 28. February 2006, 08:18 »
Hallo,
was soll eigentlich die Warung vom Linker bedeuten? (s. o.)

Nun hab ich noch eine Frage: was hat es mit der "multiboot_info" Struktur auf sich? Was ist da alles drinnen gespeichert (ich hab gehört, dass da drinnen steht, wie groß der Arbeitsspeicher ist, ...)


Viele Grüße,
   Johannes
30
Offtopic / C Hilfe ;)
« am: 27. February 2006, 19:39 »
Hallo,
so sieht meine kernel.c aus:

#include <./headers/multiboot.h>
#include <./headers/stdio.h>

int main()
{
char *Text = "Welcome to Protected Mode";
char *VideoMem = (char*)0xB8000;

while(*Text)
{
*VideoMem = *Text;
*VideoMem++;
*VideoMem = 7;
*VideoMem++;
*Text++;
}

return(0);
}

nur beim Kompilieren kommt folgender Fehler:

kernel.c:1:31: error: no include path in which to search for headers/multiboot.h
kernel.c:2:27: error: no include path in which to search for headers/stdio.h

Wie mache ich nun, dass es die 2 Dateien includet?

Viele Grüße,
   Johannes
31
Offtopic / Mir fällt die Seite nicht mehr ein...
« am: 27. February 2006, 16:31 »
Genau, danke ;)
32
Offtopic / Mir fällt die Seite nicht mehr ein...
« am: 27. February 2006, 14:45 »
Hallo,
ich kannte mal eine Seite, wo u.a. sehr genau beschrieben war, die man das Diskettenlaufwerk anspricht,...
Ich glaub in der Domain kam "tobias" oder so drinnen vor. Wisst ihr welche Seite ich meinen könnte?

Viele Grüße,
   Johannes
33
OS-Design / Grub kompatiblen C Kernel
« am: 27. February 2006, 13:44 »
Hallo,
danke ;)
nun hab ich aber erstmal ein anderes Problem... Ich hab im Moment SuSE und da gibts kein "nasm" :(
Nur "bin86 - Ein 8086 Assembler und Linker" geht das auch?


Viele Grüße,
   Johannes


Edit:
Ich hab nun eine Datei kernel.c

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
};


int main()
{
char *Text = "Welcome to Protected Mode";
char *VideoMem = (char*)0xB8000;

while(*Text)
{
*VideoMem = *Text;
*VideoMem++;
*VideoMem = 7;
*VideoMem++;
*Text++;
}

return(0);
}

dann hab ich folgende Befehle ausgefürt:
gcc -c -ffreestanding -nostdinc -O3 -Wall kernel.c
und
ld -Ttext 0x100000 --oformat elf32-i386 -O 1 -o kernel kernel.o
dann kam folgende Warung:
ld: warning: cannot find entry symbol _start; defaulting to 0000000000100000
Kann ich nun die Datei "kernel" einfach von Grub laden lassen?


Viele Grüße,
   Johannes


Edit2:
Es geht!
34
OS-Design / Grub kompatiblen C Kernel
« am: 27. February 2006, 11:56 »
Hallo,
vllt. kennen mich hier noch ein paar ;) Ich hab schon vor langer zeit mal versucht ein OS zu Programmiern und hab dann aber iweder aufgehört...

Da leider nicht mehr von dem Source Code übrig ist, wollte ich mal neu anfangen.
Nur bei einwas komme ich nicht weiter: Wie bekomme ich einen Kernel, den ich mit Grub booten kann (kA wie ich das damals gelöst hatte ;) )


Viele Grüße,
   Johannes
35
tyndur / Wo ist die kernel Datei?
« am: 20. May 2005, 18:39 »
Hallo,
ich hab in der Shell "make -kernel" eingegeben. So, nun find ich aber die Kernel datei nicht... Bzw. ist bei dem Paket für Linux Grub schon dabei? Oder wie bringt man LOST zum Laufen?
36
tyndur / Fragen...
« am: 29. April 2005, 20:26 »
Hallo,
ich hab ein paar Fragen zu Comm-OS:
- Wird gleich eine GUI entwickelt, oder eine Konsole?
- Gibt es schon genauere Pläne, wie es aussehen soll?
- Wie weit seid ihr, bzw. wo kann ich den (aktuellen) Quellcode finden?
37
Lowlevel-Coding / PIT
« am: 20. March 2005, 08:32 »
Ja, das ist schon klar, aber warum schreibt man da nicht einach << 8..
38
Lowlevel-Coding / PIT
« am: 19. March 2005, 18:38 »
Aber des & ist doch ein UND, oder muss man da net counter << 8 schreiben?
39
Offtopic / Doppelt verkettete Listen in C
« am: 19. March 2005, 16:43 »
danke und @lobmann: Ich wollte die Liste für malloc verwnden und hab deswegen malloc noch net  :D

Nur noch eine kleine Frage: Wie kann man mit gcc C-code in ASM code umwandeln?
40
Lowlevel-Coding / PIT
« am: 19. March 2005, 16:40 »
Achso, danke
Seiten: 1 [2] 3 4 ... 10

Einloggen