Fork me on GitHub dibaku.de
more_vert

BONSAI - Tools

ist eine intuitiv zu bedienende und mächtige Webapp zum Entwickeln, Kompilieren, Simulieren und Konvertieren von Bonsai-Assembler-Code.



Simulator



Dokumentation

Code entwickeln

Im "Programm"-Block der Webapp befindet sich der Monaco-Editor, ein sehr umfangreicher Online-Code-Editor, der mit Syntaxhighlighting für Bonsai-Assembler ausgestattet wurde. Zusammen mit dem "Daten"-Block lassen sich so bereits beliebige Programme realisieren.

Der Daten-Block

Im "Daten"-Block lassen sich durch Klicks auf den "+" Button beliebig viele Speicherplätze mit festgelegter Adresse hinzufügen. Deren Wert kann durch einen einfachen Klick auf die jeweilige Adresse manipuliert werden. Dadurch, dass beim Bonsai-Lehrcomputer der Wert eines Speicherplatzes auf einen Byte beschränkt ist, muss der eingegebene Wert zwischen 0 = (00000000)2 und 28-1 = 255 = (11111111)2 liegen. Der rote Link "Zurücksetzen" entfernt alle Speicherplätze bis auf den mit der Adresse 0. Diesem wird der Wert 0 zugewiesen.
Die Befehle um mit den Daten zu interagieren finden Sie in diesem Abschnitt.

Der "Speichern/Laden"-Block

Der Block mit der Bezeichnung "Speichern/Laden" ist selbsterklärend. Die Speicher-Funktion ermöglicht es den aktuellen Inhalt des Editors herunterzuladen und zu speichern. Nach diesem Prinzip erstellte Daten können mit der Schaltfläche "Öffnen" wieder in den Editor geladen werden. Mit "Löschen" werden alle Speicherplätze und der Inhalt des Editors zurückgesetzt.

Kompilieren (F3)

Im Block mit der Bezeichnung "Aktionen" befinden sich die Schaltflächen, die die drei Hauptfunktionen der App steuern:
KOMPILIEREN bezeichnet das Umwandeln der für Menschen lesbaren Befehle in Maschinencode. Dieser Vorgang muss vor dem Ausführen durchlaufen werden, um unter Anderem absehbare Fehler im Programmcode erkennen und ausgeben zu können.

Die Statusanzeige des Compilers finden Sie im "Programm"-Block unter dem Editor. Sollten während des Kompilierens keine Fehler gefunden werden, wird dies in der Statusanzeige ausgegeben und die Buttons "Ausführen" und "Maschinencode" werden aktiviert. Werden Fehler gefunden, werden diese inklusive Zeilenangabe angezeigt und das Kompilieren wird unterbrochen.

Mögliche Fehler sind Typos bei den Befehlen, der Zugriff auf Speicherplätze mit falscher Adresse und das Einfügen von Leerzeilen innerhalb des Codes, die der Bonsai-Computer nicht verarbeiten kann.

Bitte beachten Sie, dass Sie nach jeder Änderung am Code Ihr Programm neu kompilieren müssen! Um Zeit zu sparen, kann das Kompilieren auch mit der F3-Taste gestartet werden.

Ausführen (F4)

Nachdem das Kompilieren ohne Fehler beendet wurde, wird der Button Ausführen aktiv. Mit diesem können Sie die Bonsai-Simulation starten, in der Ihr Programm Befehl für Befehl abgearbeitet wird. Dies lässt sich in Echtzeit nachverfolgen, da in der Statusanzeige des Compilers angezeigt wird, welche Zeile momentan bearbeitet wird. Diese wird auch genutzt, um Fehler anzuzeigen, die während der Laufzeit des Programmes entstehen (beispielsweise beim Dekrementieren eines Speicherplatzes mit dem Wert 0).

Der Button "Maschinencode"

Die Funktion hinter dem Button mit der Aufschrift Maschinencode ist das Herzstück der App. Nach dem Klick auf den Button wird das komplette Programm in der für den Bonsai-Computer verständlichen binären Assemblersprache angezeigt.
Um das Eingeben dieser Befehle in den Speicher des Bonsai-Computers noch weiter zu vereinfachen, gibt es die Möglichkeit, sich jeden Befehl einzeln inklusive "An/Aus-Grafik" anzeigen zu lassen. Durch diese Funktion wird das Programmieren des Bonsais zum Kinderspiel.

Einstellen der Geschwindigkeit

Das Abarbeiten eines Programmes wird standardmäßig mit der Geschwindigkeit 1 Befehl pro Sekunde vollzogen. Mit dem Schieberegler im Block Geschwindigkeit lässt sich ein Multiplikator für diese einstellen. Dabei gilt es zu beachten, dass das Programm bei der höchsten Einstellung (ganz rechts) so schnell wie möglich abgearbeitet wird.

Beispielprogramme

Hier fehlt leider noch ein bisschen was ;-)

Addition

Subtraktion

Multiplikation

Division

Über das Projekt

Github

Helfen Sie jetzt Bonsai-Tools zu verbessern: github.com/rhein7

Weitere Projekte

Weitere meiner Projekte finden Sie auf www.dibaku.de und auf GitHub!

Kontakt

Über Kritik oder Anregung würde ich mich sehr freuen! Sie erreichen mich über GitHub oder per Mail an jan.hillesheim@dibaku.de