MMBasic kommt auf den Mac – MMB4M ist da
MMBasic ist inzwischen auf einer ganzen Reihe von Systemen zu Hause. Neben dem Colour Maximite 2 und den verschiedenen PicoMite-Versionen gibt es mit MMBasic for Linux (MMB4L) bereits seit einiger Zeit eine Version für Linux.
Eine Plattform fehlte bislang jedoch: macOS.
Das hat sich jetzt geändert. Tom Schimana hat mit MMB4M – MMBasic for macOS eine Portierung veröffentlicht, mit der sich MMBasic direkt auf einem Mac ausführen lässt.
Das Projekt ist auf GitHub zu finden:
https://github.com/TomSchimana/mmb4m
Von MMB4L zu MMB4M
MMB4M ist keine komplett neue MMBasic-Implementierung. Die Grundlage bildet MMBasic for Linux (MMB4L) von Thomas Hugo Williams (thwill).
Das war überhaupt erst möglich, weil MMB4L für Grafik, Sound und Eingabegeräte auf SDL2 setzt. SDL2 steht auch für macOS zur Verfügung und bot damit eine gute Basis für die Portierung.
Bevor Tom das Projekt veröffentlichte, setzte er sich mit Geoff Graham und Thomas Hugo Williams in Verbindung. Geoff Graham gab am 25. August 2026 seine Zustimmung zur Portierung. Voraussetzung war unter anderem, dass der Name MMBasic erhalten bleibt und der ursprüngliche Copyright-Hinweis beim Start weiterhin angezeigt wird.
Die erste veröffentlichte Version trägt die Versionsnummer MMB4M 0.1.0. MMB4M verwendet dabei bewusst eine eigene Versionsnummer. Im Changelog wird festgehalten, auf welchem Stand von MMB4L die jeweilige Version basiert.
Apple Silicon und Intel
Für die erste Version stehen bereits zwei fertige Pakete zur Verfügung:
mmb4m-0.1.0-silicon.zipfür Macs mit Apple-Silicon-Prozessor (M1, M2, M3 usw.)mmb4m-0.1.0-intel.zipfür Intel-Macs
Im Archiv befindet sich lediglich die ausführbare Datei mmbasic.
Da das Programm derzeit nicht mit einem Apple-Developer-Zertifikat signiert ist, blockiert macOS eine aus dem Internet heruntergeladene Version zunächst. Nach dem Entpacken kann die Quarantäne-Markierung im Terminal entfernt werden:
xattr -dr com.apple.quarantine mmbasic
Anschließend lässt sich MMBasic starten:
./mmbasic
MMBasic direkt im Terminal
MMB4M kann auf unterschiedliche Weise gestartet werden.
Nur den Interpreter öffnen:
mmbasic
Ein BASIC-Programm ausführen:
mmbasic prog.bas
Ein Programm ausführen und anschließend im MMBasic-Prompt bleiben:
mmbasic -i prog.bas
Mit QUIT wird MMBasic wieder beendet.
Interessant ist auch, dass der von PicoMite-Anwendern bekannte interne Fullscreen-Editor vorhanden ist. Mit
EDIT
kann ein BASIC-Programm direkt im Terminal bearbeitet werden.
Alternativ lassen sich externe Editoren verwenden. Unterstützt werden beispielsweise Vim, Nano oder Visual Studio Code.
Colour-Maximite-2-Kompatibilitätsmodus
Besonders interessant ist die Möglichkeit, MMB4M in einem Colour-Maximite-2-Kompatibilitätsmodus zu starten:
mmbasic -s "Colour Maximite 2"
oder kürzer:
mmbasic -s CMM2
Damit stehen unter anderem Befehle wie MODE und PAGE zur Verfügung, die im normalen MMB4M-Modus nicht vorhanden sind.
Viele CMM2-Programme können dadurch ohne Änderungen ausgeführt werden.
Man sollte dabei allerdings nicht vergessen:
MMB4M ist kein Colour-Maximite-2-Emulator.
Der Kompatibilitätsmodus simuliert einige Eigenschaften des CMM2, sodass sich insbesondere Programmlogik auf dem Mac entwickeln und testen lässt. Grafik, Sound und Timing können sich jedoch vom echten Colour Maximite 2 unterscheiden.
Grafik auf dem Mac
Im normalen MMB4M-Modus gibt es keine Bildschirmmodi wie beim CMM2. Stattdessen kann ein Programm beispielsweise ein eigenes Grafikfenster öffnen:
GRAPHICS WINDOW 0, 640, 480
Grafikausgaben erfolgen anschließend in diesem Fenster.
Auch hier gibt es einige Unterschiede zu den Hardware-Versionen von MMBasic. PRINT schreibt beispielsweise grundsätzlich in das Terminal und nicht in ein Grafikfenster. Text in einer Grafik wird stattdessen mit dem TEXT-Befehl ausgegeben.
FRAMEBUFFER ist derzeit nicht implementiert. Für Offscreen-Grafik stehen jedoch GRAPHICS BUFFER und GRAPHICS COPY zur Verfügung.
Natürlich kein Ersatz für einen PicoMite
Ein Mac besitzt natürlich keine GPIO-Pins wie ein Raspberry Pi Pico.
Befehle wie
SETPIN
PIN
PULSE
FLASH
können daher nicht einfach auf die Hardware des Macs übertragen werden.
Auch beim Timing gibt es Unterschiede. macOS ist kein Echtzeitbetriebssystem. Zeitkritische Programme können sich deshalb anders verhalten als auf einem PicoMite.
MMB4M soll einen PicoMite oder Colour Maximite 2 also nicht ersetzen.
Dafür eröffnet es eine andere interessante Möglichkeit: MMBasic-Programme können direkt auf einem Mac entwickelt und ausprobiert werden, ohne dass dafür zunächst zusätzliche Hardware benötigt wird.
Interessant für „Mein erstes MMBasic Programm“
Gerade dieser Punkt macht MMB4M auch für mein Tutorial „Mein erstes MMBasic Programm“ interessant.
Ich hatte bereits zuvor mit MMBasic auf meinem MacBook Air experimentiert und mir dafür verschiedene Startskripte eingerichtet. Mit MMB4M steht nun eine richtige macOS-Portierung zur Verfügung.
Für Einsteiger könnte das besonders praktisch sein: Wer einen Mac besitzt, kann viele der grundlegenden Beispiele aus dem Tutorial direkt ausprobieren, ohne zunächst einen PicoMite oder Colour Maximite 2 besitzen zu müssen.
Natürlich funktionieren hardwareabhängige Kapitel – beispielsweise Programme mit GPIO-Ein- und Ausgängen – nicht ohne Weiteres. Auch bei Grafikprogrammen muss geprüft werden, welche Unterschiede bestehen.
Ich werde deshalb in nächster Zeit ausprobieren, wie gut sich die Beispiele meines Tutorials mit MMB4M vertragen.
Noch eine frühe Version
MMB4M 0.1.0 ist die erste Veröffentlichung. Entsprechend weist Tom darauf hin, dass noch nicht sämtliche Funktionen getestet werden konnten.
Unter anderem sind serielle Schnittstellen und Gamecontroller bislang nur eingeschränkt bzw. noch nicht auf realer Hardware getestet worden. Auch die Intel-Version wurde zum Zeitpunkt der Veröffentlichung noch nicht umfassend auf einem echten Intel-Mac getestet.
Fehler und Erfahrungen können direkt über das GitHub-Projekt gemeldet werden.
MMB4M ist außerdem keine offizielle, von den MMBasic-Autoren gepflegte MMBasic-Version. Die unterstützten Plattformen bleiben MMBasic for Linux und die entsprechende reale MMBasic-Hardware.
Erster Praxistest auf meinem MacBook Air
Natürlich wollte ich wissen, wie gut die neue macOS-Version in der Praxis funktioniert. Also habe ich MMB4M auf meinem MacBook Air ausprobiert.
Zum Zeitpunkt meines Tests war bereits MMB4M 0.1.1 verfügbar. Kurz nach der ersten Veröffentlichung mit Version 0.1.0 gab es damit bereits ein erstes Update.
Die ausführbare Datei mmbasic habe ich einfach in meine bereits vorhandenen MMBasic-Verzeichnisse auf dem Desktop kopiert. Dort hatte ich schon zuvor mit verschiedenen MMBasic-Versionen und Startskripten experimentiert.
Der erste Test verlief erfreulich unspektakulär: MMB4M startete und meine vorhandenen BASIC-Programme liefen.
Besonders gespannt war ich auf den Colour-Maximite-2-Kompatibilitätsmodus. Auch hier gab es eine positive Überraschung: Selbst meine analoge Bahnhofsuhr, die Grafikbefehle verwendet und ursprünglich für den CMM2 bzw. PicoMite entwickelt wurde, läuft unter MMB4M im CMM2-Modus.
Damit ist MMB4M für mich bereits mehr als nur eine interessante Portierung. Viele vorhandene MMBasic-Programme lassen sich auf dem Mac offensichtlich ohne großen Aufwand ausprobieren.
Natürlich war dies bislang nur ein erster Test. In den nächsten Schritten möchte ich weitere Programme aus meinem Tutorial „Mein erstes MMBasic Programm“ ausprobieren und dabei insbesondere auf Unterschiede bei Grafik, Tastatureingabe und anderen MMBasic-Funktionen achten.
Fazit
Mit MMB4M schließt sich eine interessante Lücke.
Dank der Arbeit von Thomas Hugo Williams an MMBasic for Linux und der Portierung von Tom Schimana lässt sich modernes MMBasic nun auch direkt unter macOS verwenden.
Für die Entwicklung und das schnelle Ausprobieren von BASIC-Programmen ist das ausgesprochen praktisch. Besonders interessant ist dabei der Colour-Maximite-2-Kompatibilitätsmodus, mit dem sich viele für den CMM2 geschriebene Programme auch auf dem Mac ausführen lassen.
Mein erster Praxistest auf dem MacBook Air ist jedenfalls sehr vielversprechend ausgefallen: Meine vorhandenen MMBasic-Programme liefen auf Anhieb, und selbst die grafisch deutlich anspruchsvollere analoge Bahnhofsuhr funktioniert im CMM2-Modus.
Für mich ist MMB4M deshalb nicht nur eine weitere MMBasic-Variante, sondern auch eine interessante Ergänzung für mein Tutorial „Mein erstes MMBasic Programm“. Mac-Anwender erhalten damit eine einfache Möglichkeit, MMBasic kennenzulernen und viele der Beispiele auszuprobieren, ohne dafür zunächst zusätzliche Hardware zu benötigen.
Natürlich kann und soll MMB4M einen PicoMite oder Colour Maximite 2 nicht ersetzen – spätestens bei GPIO und anderer hardwarenaher Programmierung braucht es die echte Hardware. Als Entwicklungs-, Lern- und Experimentierumgebung auf dem Mac macht MMB4M aber schon in der ersten Version einen sehr guten Eindruck.
Ich werde auf jeden Fall weitere Programme aus meinem Tutorial mit MMB4M testen. Vielleicht entwickelt sich daraus sogar noch ein eigener kleiner Abschnitt „MMBasic auf dem Mac“.