devkitMiNT aka m68k-atari-mint-elf

devkitMiNT ist eigentlich kein ATARI-Projekt – und irgendwie dann doch! Da das Kompilieren von C/C++ Code immer anspruchsvoller wird, reicht die Leistung eines Original-ATARI oft nicht mehr aus. Ich erinnere mich noch gut daran, wie ich den ResourceMaster auf meinem Falcon030 kompiliert habe. Die 4 MB RAM reichten gerade so aus, um den GCC 2.8.1 zum Laufen zu bekommen. Sobald der Quellcode etwas umfangreicher wurde, stieß das System an seine Grenzen.

Virtueller Speicher als Rettung

Zum Glück gab es OUTSIDE von Uwe Seimet. Diese virtuelle Speicherverwaltung ermöglichte es ATARIs mit MMU (wie dem Falcon030 oder dem Atari TT), fast beliebig viel RAM zu nutzen. Physisch nicht vorhandener Speicher wurde einfach auf die Festplatte ausgelagert. Im Nachhinein wird mir klar, was ich meiner Festplatte damals angetan habe – das ständige Swapping war Schwerstarbeit für die Hardware.

Aber was ist devkitMiNT eigentlich? Da moderne Compiler wie der GNU Compiler Collection (GCC) kaum noch nativ auf einem Original-ATARI laufen, ist das Zauberwort Cross-Compiler. Ein Cross-Compiler läuft auf einem modernen System (Windows, Linux, Mac), erzeugt aber Code für eine ganz andere Zielplattform – in diesem Fall die Motorola 68k CPU-Familie des ATARI.

Die Inspiration dazu kam aus meiner Zeit mit Homebrew-Projekten für den Nintendo DS, die Wii und die PSP (PlayStation Portable). Durch die Arbeit mit devkitPro habe ich viel über den Bau und die Konfiguration solcher Werkzeuge gelernt.

Im Jahr 2012 entschied ich mich, meinen eigenen M68k-Cross-Compiler zu bauen. Das Ergebnis ist ein umfangreiches Bash-Script, welches den GCC konfiguriert und kompiliert. Ich habe es bis zur GCC Version 8.2.0 gebracht.

devkitMiNT auf GitHub

Dank devkitMiNT konnte ich einige Projekte neu kompilieren. So entstand unter anderem der ResourceMaster 4.0, den es nun auch als nativen Code für den Coldfire MCF5474 gibt.

GCC existiert mittlerweile bereits in der Version 13.2. Wenn es nicht so aufwendig wäre, die zahlreichen Patches anzupassen, könnte ich mir ein Update für devkitMiNT in der Zukunft gut vorstellen.