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 - vinz

Seiten: [1]
1
Danke für die Antworten, dass ich entweder K&R C odere Ansi C benutzen muss ich ist mir jetzt auch klar.
Was immer noch nicht funktioniert ist, ist das richtige Dateien Format. Da ich jetzt schon fast alles ausprobiert habe, werde ich wohl wieder zum guten alten Assembler übergehen :wink: Der Compiler ist wohl eher ungeeignet... Einen Compiler über einen Emulator laufen zu lassen ist auch nicht die richtige Lösung.
Warum ich mir ein Betriebssystem in 16 bit schreiben will? Nostalgie oder einfach nur Spaß an der Sache (solange es funktioniert natürlich)

Gruß vinz
2
Hallo Leute,
ich beschäftige mich gerade mit 16 bit Betriebssystemen. Auf Grundlage der Ausgabe 1 (http://www.lowlevel.eu/wiki/Ausgabe_1) hab ich selbst angefangen ein schlichtes OS mit nasm zu schreiben. Die gesamte api in Assemblern zu schreiben ist natürlich sehr zeitaufwändig und fehleranfällig, deswegen hab' ich mich nach einem C Compiler für den 8086 umgesehen und bin da auf bcc gestoßen. Das Problem ist jetzt nur, dass ich für bcc nicht gerade eine umfangreiche Dokumentation gefunden habe. Link dazu: http://manpages.ubuntu.com/manpages/precise/en/man1/bcc.1.html
Das ist auch schon das Problem, ich will einfach meinen Kernel von meinen Bootloader aufrufen. Dafür muss der Kernel natürlich als standalone compiliert sein und ich habe (fast) kein Plan wie ich den Compiler benutzen soll, da er so dürftig Dokumentiert ist. Das zweite Problem ist, das ich auch keinen blassen Schimmer habe, wie der inline-Assembler funktioniert... Kann natürlich auch sein, dass mein Ich-google-mal-alles-skill einfach total schlecht ist  :-D

Ich bin natürlich auch für andere 16 bit C Compiler offen, wenn es da welche für Ubuntu 12.04 gibt.

So weit bin ich bis jetzt:
asm "jmp _kmain";

void kputs(char *s)
{
    while (*s) {
        asm "mov ah, 0x0E";
        asm "mov si, _s";
        asm "mov al, [si]";
        asm "mov bx, 0x0007";
        asm "int 0x10";
        s++;
    }
}

void kmain()
{
    kputs("Test.");
    asm "cli";
    asm "hlt";
}

Compilieren verläuft wie folgend:
$ bcc -Ms kernel.c
kernel.c:8.15: error: need ')'
kernel.c:8.15: error: kputs already declared
kernel.c:8.19: error: s not in argument list
kernel.c:8.19: error: need ';'
kernel.c:8.19: error: need '{'
kernel.c:8.19: error: bad expression
kernel.c:9.1: error: need ';'
kernel.c:eof: error: need '}'

Gruß vinz
Seiten: [1]

Einloggen