Ich würde empfehlen, ein Betriebssystem für die klassischen Amiga-Computer zu entwickeln, die verschiedene Versionen des 68000-Prozessors hatten. Da der Amiga-Computer ein kompletter Computer ist und sehr gut dokumentiert ist, dachte ich, dies wäre eine gute Übung.
Es gibt einen Emulator namens UAE (und Win-UAE), der sehr genau ist und kann mit verschiedenen Arten von Prozessoren (68000 - 68060) und anderen Fähigkeiten konfiguriert werden. Normalerweise müssten Sie auch ROMs dafür erwerben, aber da Sie selbst ein Betriebssystem entwickeln, ist dies nicht notwendig.
Tools, die Sie benötigen, ist entweder Cygwin (für die Entwicklung unter Windows) oder ein Linux-Computer. Dann brauchen Sie Cross-Compiler. Dies umfasst sowohl einen C-Compiler als auch einen Assembler. Here is a template zum Erstellen eines einfachen ROM, das die Bildschirmfarbe ändert und die Power-LED aufleuchtet. Es wird eine Datei 'kick.rom' erstellen, nach der UAE dann im aktuellen Verzeichnis sucht.
Die Referenz zum 68000-Befehlssatz finden Sie unter den folgenden Links. Beachten Sie, dass verschiedene Assembler-Programme eine etwas andere Syntax und einen anderen Befehlssatz verwenden können.
Wenn Sie das Betriebssystem auf echter Hardware testen müssen, gibt es moderne Amiga-Klone, die auf Ebay und anderen Orten verkauft werden. Suche nach "Minimig".
Update: Heutzutage AROS läuft auch auf UAE sowie physikalische Amigas.
Refs:
[UAE]
[WinUAE]
[Cygwin]
[Cross Compilers]
[68000 reference]
Ich stimme dem letzten Satz nicht zu. Wenn Sie ein Betriebssystem schreiben, gibt es viele notwendige Dinge, die Sie in C nicht tun können. Es ist gut, asm auf ein Minimum zu halten, und es ist gut, die meisten asm als Inline-Assembly aus C-Code zu machen. Aber Sie werden wahrscheinlich immer noch einige Dateien brauchen, die nichts als Assembler sind. Werfen Sie einen Blick auf entry.S auf Linux für ein Beispiel - solche Sachen macht keinen Sinn als Inline-asm, muss es für sich allein stehen. – asveikau
noch machen 'getch' und' printf' irgendeinen Sinn wie O/S-Level-Funktionsaufrufe. Es sei denn, Sie überschreiben MS-DOS ... – Alnitak