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.


Themen - Spiderschwein13

Seiten: [1]
1
Lowlevel-Coding / Probleme RM VESA initialisierung
« am: 21. June 2009, 21:16 »
hey Leute,
nach einer langen Pause mach ich jetzt mit meinem Kumpel wieder an unserem kleinen OS weiter...

Zur Zeit sind wir dabei, den VESA Modus über das Bios zu initialisieren (RM)... das ganze machn wir per inline-ASM, allerdings bringt der gcc-compiler folgende Fehlermeldung:

Zitat
C:\DOKUME~1\Familie\LOKALE~1\Temp\ccRwH4rZ.s: Assembler messages:
C:\DOKUME~1\Familie\LOKALE~1\Temp\ccRwH4rZ.s:21: Error: junk `00h' after express
ion

Parameter für gcc
gcc -masm=intel -m32 -ffreestanding -o C:\IUse\tmp\main.o -c main.c  -Werror -nostdinc

Wir entwickeln jetzt unter Windoof, unter Linux kommt aber der selbe Fehler..........

Hier unser Code....
int main(){

//Die folgende Funktion switcht in den RM
asm("cli\n\t"

        "mov     eax,cr0\n\t"
        "and     al,not 1\n\t"
        "mov     cr0,eax\n\t"


        "sti\n\t");

 //Initialisiere VESA



asm("push ax\n\t"
"push bx\n\t"


"mov ax, 4f00h\n\t"  <-------- Die Anweisung macht nen Error :(
"mov bx, 0x7e0\n\t"
"mov es, bx\n\t"
"mov di, 0x0\n\t"
"int 0x10\n\t"

"cmp ax, 0x004f\n\t"
"jne .1\n\t"

"mov bx, 0x7e0\n\t"
"mov es, bx\n\t"
"mov di, 0x0\n\t"
"mov ax, [es:di+4]\n\t"

"mov ax, 0x4f01\n\t"
"mov di, 0x0\n\t"
"mov bx, 0x800\n\t"
"mov es, bx\n\t"
"mov cx, 0x0115\n\t"
"int 0x10\n\t"

"mov ax, 0x4f02\n\t"
"mov bx, 0x4115\n\t"
"int 0x10\n\t"

"cmp ax, 0x004f\n\t"
"je .3\n\t"
".1:\n\t"
".2:\n\t"
"jmp .2\n\t"
".3:\n\t"
"pop bx\n\t"
"pop ax\n\t"
"ret\n\t");
// ".1:\n\t" Dannach kommt eigtl eine Instruktion was er machen soll, wenns schiefgeht ...
       
}
2
OS-Design / TeeJay's FAT12 Bootlader
« am: 12. February 2008, 20:56 »
Hallo,
so langsam hab ich jetz nen kleinen Überblick über die ganzen C Kernel und Protected Mode Tuts & co.
Ich würde nun endlich gern ein Hallo Welt mit einem C Kernel machen.
Dafür ist ja das "C-Kernel starten"-Tut ganz gut geeignet, in dem ein einfacher C-Kernel beschrieben wird.
Um diesen zu starten, brauch ich jetzt aber noch, wenn ich das richtig verstanden habe, eine FAT12 Diskette mit dem TeeJay Bootsector auf die ich den kompilieren "Kernel" als KERNEL.BIN kopieren muss?

Allerdings weiß ich nicht ganz, wie ich diese Diskette (oder besser das Image, hab nämlich kein Diskettenlaufwerk) erstell.
Ich bin so weit gekommen, den TeeJay-Boot-Loader zu einer 512 Byte großen bootsec.bin zu kompilieren und mir ein FAT12 Diskettenimage auf dem die kompilierte kernel.bin schlummert zu erstellen und unter Linux zu mounten.

Wie aber bring ich jetz den Bootloader auf das Diskettenimage? Ich kann ja schlecht die ersten 512 Byte meines Images mit der bootsec.bin überschreiben, denn dann ist ja das ganze FAT System futsch ...
3
OS-Design / Graphische Oberfläche mit GRUB, C und VGA
« am: 07. February 2008, 19:32 »
Hallo,
alle sagen immer, dass man um ein OS mit GUI zu basteln min. 2 Jahre und ein Informatikstudium braucht.
Wenn ich mich aber auf vorhandenen Sachen, wie einem Standard VGA Treiber, der LibC und dem Bootloader GRUB aufbauen würde, wäre es doch kein sooo großer Aufwand oder? (Wenn bei irgendeiner bootbaren CD Grafiken, z.B. BMP Datein angezeigt werden, brauchen die doch auch nen Grafikkartentreiber, oder?)
Also, wenn ich mich zunächst auf den Standardmodus beschränke und eine freie C Bibliothek verwende, ist eine einfache GUI doch nicht sooo schwer, oder?
4
OS-Design / Buch zum Einstieg in OS-Programmierung
« am: 05. January 2008, 12:21 »
Erstmal Hallo ans Forum!

Windows XP ist toll, es ist benutzerfreundlich und man braucht nicht viel PC-Verständnis.
Nur eine klitze kleine Frage stellt sich mir da immer: Wieso is das so ***** langsam? Schon allein der Bootscreen, was muss denn da alles geladen werden?
Deshalb wollten mein Freund und ich auch mal ein eigenes OS programmieren.
Ich habe davorn nur leider sehr wenig Ahnung.
Was kann ich alles in C programmieren? Was muss in Assembler geschrieben werden? Wie bring is das ganze auf CD (RW)? Welchen Emulator soll ich verwenden .. Oder wie sprech ich die Graphikkarte an? Denn mein OS soll wie oben angedeutet genauso benutzerfreundlich sein, wie XP, deshalb müsste von Anfang an ne graphische Oberfläche her.
Und wenn ich dann was in C programmier, kann ich das doch eh wieder in Maschienencode umwandeln? Dann müsste es genauso effizient sein, wie Assembler?

Über das Internet ist es immer schwer, so viele "zusammenhängende" Informationen zu finden.
Vllt könnt ihr mir schon ein paar Fragen beantworten, aber am besten wärs, wenn mir jemand ein gutes Buch empfehlen könnte, indem ich zum Einstieg ein bisschen begleitet werde.

Gruß
das Spiderschwein :-)
Seiten: [1]

Einloggen