C64 Assembler Programmierung – Visual Studio Code
In meinem letzten Artikel habe ich die C64 Assembler Programmierung mit dem CBM Studio erläutert und Visual Studio Code als Alternative genannt. Auf vielfachen Wunsch widmet sich dieser Artikel ausschließlich auf die C64 Assembler Programmierung mit Visual Studio Code und dem Plugin vs64.
C64 Assembler Programmierung – Visual Studio Code
Visual Studio Code ist aktuell der beliebteste Editor. Die Software lässt sich auf jedem relevanten Betriebssystem installieren (da sie mit JavaScript entwickelt wurde) und ist durch Plugins beliebig erweiterbar.
Installation
Das Plugin findet man im Editor auf unter dem Menüpunkt Erweiterungen und über die Suche nach vs64 beziehungsweise C64.Mit einem Klick auf Installieren ist das Plugin auch schon installiert und kann verwendet werden.
Ich habe mir nun für die Visual Studio Code Projekte einen neuen Ordner erstellt und diesen gleich mit dem Editor geöffnet.
Konfiguration
Damit der Assembler Code kompiliert werden kann benötigt das Plugin einen Assembler. Eine Möglichkeit ist der ACME Cross-Assembler. Ich habe das Tool in einem Ordner abgelegt. Als nächstes muss man Visual Studio Code (bzw. dem Plugin) noch mitteilen, wo er dieses findet. Das geht so:
Beim Punkt Assembler Path gibt man nun den genauen Pfad zur acme.exe (für Windows) Datei an.
Als nächstes benötigen wir einen Debugger, um den Code auch Schritt für Schritt auszuführen und die aktuellen Werte im Speicher zu sehen. Ich lade mir deshalb einen C64Debugger herunter und entpacke diesen ebenfalls in mein Tools Verzeichnis.
Zuletzt benötigt man auch noch einen Emulator um die erstellte *.prg Datei auszuführen. Ich setze dabei auf den beliebten VICE, den ich ebenfalls in mein Tools Verzeichnis installiert habe. Bei den Emulatoren gibt es vermutlich 1000 Alternativen und wenn man genug Zeit hat, kann man sich auch einen recht einfach selber schreiben. Das Plugin erlaubt jedenfalls jeden beliebigen Emulator. Meine Konfiguration:
Alle weiteren Einstellungen sind auf Standard gestellt, insbesondere jene für die Argumente von Emulator, Debugger und Compiler sind bei mir leer.
Test
Die korrekten Einstellungen testet man am besten mit einem einfachen „Hello World“ Beispiel. Ich wollte dazu jenes vom CBM Studio verwenden und musste lernen, dass Assembler zwar immer die selben Opcodes verwendet, die Hilfestellungen von der jeweiligen IDE sind unterschiedlich. Das bedeutet, den hello Source Code von GitHub kann man nicht so einfach mit einem anderen Assembler Compiler erstellen. Aus diesem Grund habe ich im Repo einen vscode Ordner erstellt mit dem angepassten Source Code.
Die Änderung betrifft alle Makros der IDE. So wurde pText in !text und BYTE in !byte geändert. Die Dokumentation zu den verfügbaren Makros oder Pseudo-Opcodes wie es die Dokumentation nennt gibt es für den ACME Compiler hier.
Testprojekt ausführen
Ausführen kann man die erstellte *.prg Datei über die Command Prompt von VS Studio. Diese öffnet man mit der Tastenkombination: STRG+SHIFT+P und wird mit C64:run gestartet. Sind alle Einstellungen korrekt, dann startet der VICE Emulator und führt die erstellte *.prg Datei aus.
Noch ein Wort zum Plugin. Die erstellten Binärcodes und Metadaten findet man im .cache Verzeichnis auf ebene vom Projektverzeichnis:
Fazit
Obwohl ich bisher vom CBM Studio überzeugt war bin ich aktuell auch sehr von den Möglichkeiten von Visual Studio Code angetan. Das vs64 Plugin ist recht allgemein implementiert, so dass man die einzelnen Details (Emulator, Debugger, Compiler) nach den eigenen Wünschen anpassen kann. Es ist quasi nicht möglich irgend eine Sprache nicht mit dieser IDE zu verwenden. Die Einrichtung ist recht einfach und man kann sehr schnell erste Erfolge erzielen. Das Syntax-Highlighting funktioniert, jede Änderung wird sofort in eine Ausführbare Datei kompiliert und der Emulator lässt sich einfach starten. Für Probleme lassen sich beliebig gute Debugger anbinden.
Eine Antwort
[…] endlich um Assembler und dessen Syntax. In den vorangegangenen Teilen habe ich das CBM Studio und Visual Studio Code als IDEs für die Assembler Programmierung für den C64 […]