Hi,
Ich versuche gerade mit einer alten 16-Bit Turbo C Version eine 16-Bit COM-Datei zu erstellen, die ich auch für meinen Bootloader benutzen kann.
Habe dazu erstmal eine Testdatei erstellt:
test.c
Compilieren tue ich die Datei folgendermaßen:
-c = Nur compilieren, nicht linken
-mt = Tiny Memory Model
Das funktioniert auch schonmal ganz gut und ich erhalte die gewünschte test.obj. Allerdings scheitere ich jetzt beim linken:
/n = Keine default libs verwenden
/t = COM Datei erstellen
Allerdings erhalte ich immer die Meldung:
Kenne mich aber weder mit dem Linker noch mit dem Compiler noch generell mit C wirklich gut aus.
Also wie kann ich ihm jetzt den richtigen Entry-Point (0x100) übergeben?
Per Compilerschalter oder irgendwie doch über den Linker oder sonst irgendwie?
Gruß
Cjreek
Ich versuche gerade mit einer alten 16-Bit Turbo C Version eine 16-Bit COM-Datei zu erstellen, die ich auch für meinen Bootloader benutzen kann.
Habe dazu erstmal eine Testdatei erstellt:
test.c
Code: [Auswählen]
int main()
{
}Compilieren tue ich die Datei folgendermaßen:
Zitat
tcc -mt -c test.c
-c = Nur compilieren, nicht linken
-mt = Tiny Memory Model
Das funktioniert auch schonmal ganz gut und ich erhalte die gewünschte test.obj. Allerdings scheitere ich jetzt beim linken:
Zitat
tlink test.obj /n /t
/n = Keine default libs verwenden
/t = COM Datei erstellen
Allerdings erhalte ich immer die Meldung:
Zitat
Cannot generate COM file : invalid initial entry point address
Kenne mich aber weder mit dem Linker noch mit dem Compiler noch generell mit C wirklich gut aus.
Also wie kann ich ihm jetzt den richtigen Entry-Point (0x100) übergeben?
Per Compilerschalter oder irgendwie doch über den Linker oder sonst irgendwie?
Gruß
Cjreek

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert


Allerdings hatte ich nie vor ein Betriebssystem in C zu schreiben. Für das Betriebssystem selbst hätte ich Pascal genommen. Für den Bootloader hätte dann halt notfalls z.T. C herhalten müssen, weil ich keinen Pascal Compiler kenne, der Code ausspuckt, der in dieser Situation verwendbar wäre 

