Das C64 Studio installieren & einrichten
Hier möchte ich euch kurz zeigen, wie man die von mir favorisierte C64-Entwicklungsumgebung (häufig auch als IDE = Integrated Development Environment / Integrierte Entwicklungsumgebung bezeichnet), die von Georg „Endurion“ Rottensteiner entwickelt wird, installiert und einrichtet. Gemeint ist das C64 Studio.
Eine kurze Funktionsübersicht
Das C64 Studio bietet ähnliche Funktionen, wie das CBM prg Studio. In einer Entwicklungsumgebung habt ihr wieder viele nützliche Tools vereint, natürlich gibt es auch Syntax-Highlighting, Autovervollständigen usw.
Das Herzstück ist in meinen Augen der auf der ACME-Syntax basierende Assembler, der dank seines mathematischen Parsers auch komplexe Berechnungen während der Programmerstellung erlaubt. Sehr hilfreich ist z. B. auch, dass man nach einer Assemblierung den „Wert“ von Konstanten und Label sieht, sobald man die Maus „draufstellt“ und dass das Autovervollständigen dann auch eingebundene Sourcedateien beachtet. Mehr dazu gibt es unter „Umstieg aufs C64 Studio!“ und „Vom CBM prg Studio zum C64 Studio“.
Das C64 Studio wurde übrigens mit dem .NET Framework erstellt. Wer sich für den Quellcode des C64 Studios interessiert, findet diesen mittlerweile auf GitHub.
Bei der Erstellung von Assembler- und BASIC-Programmen werdet ihr u. a. von den folgenden Tools unterstützt, die das C64 Studio bereits mitbringt.
Sprite-Editor
Wie der Name bereits verrät, erlaubt euch dieser Editor das Erstellen von ein- und mehrfarbigen (Muliticolor) Sprites. Auf dem Layer-Tab könnt ihr die Sprites testweise positionieren, um z. B. aus mehreren Sprites zusammengesetzte Figuren bzw. Objekte zu kontrollieren.
Zeichensatz-Editor
Hiermit könnt ihr eigene Zeichensätze (auch wieder ein- oder mehrfarbig) entwerfen und verwalten.
Screen-Editor
Einzelne, einfache Bildschirme (z. B. Level für ein Spiel) lassen sich mit diesem Editor erstellen. Dabei könnt ihr natürlich auch auf einen selbsterstellten Zeichensatz (s. vorheriger Punkt) zurückgreifen.
Map-Editor
Hier könnt ihr zunächst Tiles (dies sind größere, aus mehreren Zeichen bestehende, Bauteile) erstellen…
und mit diesen dann eure Maps (z. B. die Level für ein Spiel) aufbauen. Auch hier könnt ihr natürlich wieder selbsterstellte Zeichensätze verwenden.
Grafik-Editor
Für eigene BITMAPs könnt ihr diesen Editor verwenden. Er stellt aktuell allerdings keinen Ersatz für ein „echtes“ Grafikprogramm dar! Aber um mal einen Blick auf eine Grafik zu werfen oder eine Kleinigkeit zu korrigieren reicht er.
Die Toolfenster könnt ihr übrigens, ganz nach euren Vorlieben, als „freies“ Fenster oder beliebig angedockt verwenden. Die Tools sind leider teilweise etwas hackelig in der Bedienung. Ihr könnt natürlich auch auf externe Tools (z. B. Char Pad, Sprite Pad, usw.) zurückgreifen. Diese bieten häufig einen größeren Funktionsumfang, da sich die jeweiligen Entwickler nur auf das eine Programm konzentrieren müssen.
Download & Installation
Ihr könnt das C64 Studio kostenlos auf Georgs Seite herunterladen, über eine kleine Spende würde er sich aber bestimmt freuen.
Alternativ könnt ihr auch den direkten Downloadlink nehmen, der führt immer zur aktuellen Version.
Da wir gleich WinVICE mit dem C64 Studio verknüpfen wollen, solltet ihr dies bereits eingerichtet haben. Werft anderenfalls erstmal einen Blick auf den Beitrag WinVICE: Erste Schritte.
Installation
Sehr schön ist, dass ihr das C64 Studio, so wie bereits WinVICE, nicht installieren müsst. Ihr braucht nur das ZIP entpacken und könnt gleich loslegen.
Nach dem Entpacken findet ihr im neuen Ordner C64StudioRelease das Programm C64Studio.exe. Dies könnt ihr per Doppelklick starten.
Falls ihr den Windows Defender SmartScreen einsetzt, kommt beim ersten Start evtl. folgendes Fenster. Folgt dann einfach den beiden Schritten.
Für die spätere Nutzung empfiehlt es sich, das Programm C64Studio.exe über das Kontextmenü (rechte Maustaste) an Start anzuheften, dann könnt ihr es in Zukunft einfacher aufrufen.
Einrichtung
Beim ersten Start sollte das C64 Studio nachfragen, ob ihr es normal oder portabel (z. B. auf einem USB-Stick oder einem Cloudspeicher wie OneDrive) auf verschiedenen Rechnern nutzen wollt.
Falls ihr normal wählt, wird die Datei mit euren Einstellungen settings.dat, unter %APPDATA%\GR Games\C64Studio\1.0.0.0 gespeichert, bei portable direkt im Verzeichnis, in dem die C64Studio.exe liegt. Ihr könnt dies auch später noch ändern. Falls ihr euch für portable entscheidet, denkt daran, dass dann auch die verwendeten Pfade (z. B. zu WinVICE) überall gleich sein müssen.
Sobald ihr euch für einen Punkt entschieden habt, öffnet sich die IDE und es kommt auch schon die nächste Frage.
Das C64 Studio möchte wissen, ob ihr direkt die Tools einrichten möchtet. Da wir WinVICE nutzen wollen, solltet ihr die Frage mit „Ja“ beantworten.
Im neuen Fenster sucht ihr dann ganz einfach den Pfad zur x64sc.exe von WinVICE.
Das war es auch schon! WinVICE wurde mit den Standard-Einstellungen verknüpft. Das C64 Studio aktualisiert nach dem Wizard übrigens die Anzeige im Hauptfenster nicht. Eigentlich sollte oben in der Auswahl der aktuelle Emulator zu finden sein. Ihr könnt entweder das C64 Studio schließen und neustarten oder einmal die Preferences öffnen und unter Tools WinVICE anklicken.
Dateistruktur
Das C64 Studio verwendet folgende Struktur, um eure Dateien für ein neues Programm zu verwalten.
- Solution (Lösung)
Die Basis bildet die sog. Solution. Für jedes Programm, das ihr schreibt, gibt es nur eine Solution, diese kann allerdings mehrere Projekte (s. nächster Punkt) aufnehmen.
-
- Project (Projekt)
Ein Projekt fasst eure Quelldateien zusammen. Dazu gehören neben dem Programmcode z. B. auch Sprites, Zeichensätze, Maps und andere Dateien. Ihr könnt innerhalb eines Projektes auch Ordner anlegen, um für mehr Ordnung zu sorgen.
- Project (Projekt)
-
-
- Files (Dateien)
Zum Schluß gibt es die einzelnen Dateien. Diese enthalten dann alles, was ihr für euere Programme benötigt, z. B. den Programmcode, Sprite- oder Musikdaten, Grafiken, Zeichensätze, usw.
- Files (Dateien)
-
Wenn ihr ein neues Programm entwickeln wollt, legt am besten zunächst eine Solution mit einem passenden Namen an. Häufig nutzt man dann nur ein Projekt mit dem selben Namen und fügt zu diesem die benötigen Dateien hinzu. Bei größen Programmen, könnt ihr unter einer Solution z. B. auch mehrere Projekte hinzufügen. Wenn ihr z. B. etwas wie „Winter Games“ programmieren wollt, dann legt ihr zunächst die Solution „Winter Games“ an. Zu dieser fügt ihr dann Projekte für die einzelnen Teile hinzu, z. B. Intro, Menü, Bobfahren, Slalom, Snowboard usw. und entwickelt so jeden Teil für sich. Ihr könntet aber auch einfach nur mehrere Quellcodedateien nutzen. Wie ihr ein größeres Vorhaben stukturiert, liegt ganz bei euch. Falls alles in ein Programm passt, würde z. B. auch eine einzelne Quellcodedatei reichen.
Das C64 Studio erlaubt es euch auch, z. B. nur eine Codedatei (ohne Projekt oder Solution) oder ein Projekt (ohne Solution) zu verwenden, ich rate euch aber zur oben gezeigten Struktur.
Ein erstes Assemblerprogramm
Auch wenn ihr evtl. die Befehle noch nicht versteht, gebt gleich mal das unten stehende Progrämmelchen ein, um das C64 Studio und die WinVICE-Anbindung zu testen.
Aber als erste legen wir, wie eben empfohlen, die Solution an…
Eine Solution erstellen
Öffnet zunächst das Menü [File], geht auf [New >] und klickt den Punkt [Solution] an. Es erscheint ein neues Fenster, in dem ihr den Namen (z. B. Ein erster Test) für die neue Solution und einen Hauptordner (ich nehme R:\Entwicklung\), in dem diese und zukünftige Solution gespeichert werden, festlegt.
Sobald ihr den Dialog mit OK schließt, solltet ihr im Fenstertitel des C64 Studios den Namen der neuen Solution Ein erster Test entdecken. Ganz rechts im sog. „Solution Explorer“ müsste außerdem der Eintrag Ein erster Test zu sehen sein. Dies ist das automatisch angelegte Projekt, das den selben Namen wie die Solution trägt. Der „Solution Explorer“ ist sehr wichtig, dort findet ihr später alles, was zu eurem Programm gehört.
Wenn ihr jetzt mal in den Windows-Dateiexplorer schaut, findet ihr in eurem Hauptordner (bei mir R:\Entwicklung\) ein neues Verzeichnis mit dem Namen der Solution (in diesem Beispiel also Ein erster Test). Werft einen Blick in diesen Ordner und ihr entdeckt dort zwei Dateien, die ebenfalls diese Bezeichnung haben. Ein erster Test.s64 ist die Solution-Datei, außerdem findet ihr dort die eben erwähnte automatisch angelegte Projekt-Datei Ein erster Test.c64.
Eine Sourcedatei hinzufügen
Nachdem wir eben die benötigten Veraussetzungen geschaffen haben, lasst uns nun einen Source (auch Source-, Quell- oder Programmcode genannt) hinzufügen. Dazu brauchen wir zunächst eine Datei, in der wir den Programmcode speichern.
Ihr könnt wieder über das Menü, wie bei der Solution gehen oder nutzt den [New]-Button aus der Toolbar. Wählt den Punkt [ASM File] aus. Es erscheint eine Abfrage, ob ihr die neue Datei zum aktuellen Projekt hinzufügen möchtet. Wie erwähnt, könnt ihr auch Dateien ohne Projektbezug mit dem C64 Studio nutzen. Wir möchten diese aber zum Projekt hinzufügen, klickt also auf Ja.
Es öffnet sich ein Fenster und ihr solltet euch im Pfad des aktuellen Projektes befinden. Hier müsst ihr nun den Dateinamen für die neue Datei festlegen, nehmt für unser Beispiel bitte Rahmen blinken. Bei der Dateiendung der Assemblerquellcodedateien gibt es zwei häufig verwendete Möglichkeiten, an die ihr euch auch halten solltet. Ihr solltet als Endung entweder .a oder .asm verwenden. Ich ziehe die zweite Möglichkeit vor, daher nenne ich die Datei also Rahmen blinken.asm. Klickt zum Schluß auf den Button [Öffnen], um die Datei endgültig anzulegen. Danach öffnet sich ein neuer Tab, in dem ihr gleich den Quellcode eingebt. Außerdem findet ihr im „Solution Explorer“ unter dem Projekt Ein erster Test die neue Datei Rahmen blinken.asm.
Das Programm eingeben & speichern
Als nächstes gebt nun bitte das folgende Programm ein. Auch wenn es beim C64 Studio keine direkten Vorgaben gibt, solltet ihr euch bei der Eingabe eine gewisse Struktur (Einrückungen, Leerzeilen, Kommentare, usw.) aneignen.
!to "test.prg",cbm ;Dateiname des erstellten C64-Progtamms *=$0801 ;Startadresse !BASIC ;Einfacher BASIC-Start (dieses Schlüsselwort gibt es so nur beim C64-Studio) main ;Label für die Endlosschleife inc $D020 ;Rahmenfarbe um eins erhöhen jmp main ;Sprung zum Label main (Endlosschleife)
Vergesst nicht, zum Schluß eure Eingaben zu speichern. Wenn ihr nochmal den Windows-Explorer bemüht, werdet ihr eure neue Sourcedatei Rahmen blinken.asm im bereits erwähnten Solution-Ordner finden. Das C64 Studio bietet euch übrigens über den „Solution Explorer“ einen Weg, schnell zur Datei zu gelangen. Klickt dazu mit der rechten Maustaste auf den Eintrag Rahmen blinken.asm und wählt im Menü den Punkt [Open Explorer here].
Das Programm erstellen und ausführen
Lasst uns nun die Früchte unserer Arbeit ernten und unser neues Programm in Aktion betrachten. Bevor es ausgeführt werden kann, muss der Assemblerquellcode noch in die für den C64 verständliche Maschinensprache übersetzt werden. Diesen Vorgang nennt man assemblieren. Ihr habt beim C64 Studio fünf Funktionen, die das Programm erstellen und evtl. direkt starten.
- Leider ist die erste Funktion fälschlich mit „compile“ bezeichnet, korrekt wäre „assemble“ (assemblieren).
Diese übersetzt ausschließlich die aktuelle Quellcodedatei, es werden keine weiteren Funktionen ausgeführt. Ihr könnt so z. B. schnell prüfen, ob euer Programmcode Syntaxfehler enthält. Außerdem werden so auch einige zusätzliche Infos überhaupt erst verfügbar bzw. aktualisiert. Euch sind ganz links bestimmt die vielen ???? und Nullen 0 aufgefallen, außerdem gibt es noch keine Hilfe, wenn man die Maus z. B. auf das Label „main“ stellt.
Klickt nun „compile“ an:Die Erstellung benötigt nur einen Sekundenbruchteil. Ihr seht sofort, dass links, im grauen Bereich, nun Infos stehen.
Von links beginnend, seht ihr in der ersten Spalte, an welcher Speicheradresse im C64 die jeweilige Zeile beginnt, z. B. $080D. Dann folgt, wie viele Bytes im Speicher von der Zeile belegt werden. Als drittes werden die benötigten Taktzyklen angezeigt. Ganz rechts im grauen Bereich, steht einfach die aktuelle Zeilennummer. Außerdem erscheint nun auch ein Tooltip, wenn ihr die Maus auf das Label main stellt.Sobald ihr einen Blick in das Verzeichnis mit euren Dateien werft, werdet ihr die neue Datei test.prg entdecken. Dies ist das fertige, auf dem C64 lauffähige, Programm. Der Dateiname entspricht der Angabe in der ersten Zeile des Sourcecodes !to „test.prg“,cbm ;Dateiname des erstellten C64-Progtamms.
- Diese Funktion nennt sich „Build“
Sie macht erstmal das gleiche, wie „compile“ und erstellt das Programm. Allerdings werden auch die sog. „Build Events“ abgearbeitet. Mit den „Build Events“ könnt ihr u. a. vor und / oder nach der Programmerstellung automatisch weitere Arbeitsschritte ausführen lassen, wie z. B. nach der Erstellung euer Programm zur Komprimierung an einen Packer weitergeben. „Build“ erkennt, ob sich etwas geändert hat und läuft nur dann weiter. Falls es keine Änderung gab oder eine erneute Erstellung unnötig ist, geschieht auch nichts.
- Dies ist der sog. „Rebuild“.
Einziger Unterschied zum „Build“ ist, dass das Programm immer neu erstellt wird. Damit könnt ihr also ein „Build“ erzwingen.
- Mit der Funktion „Build and Run“,
erstellt ihr zunächst euer Programm, wie beim „Build“. Es wird dann allerdings automatisch mit dem gewählten Emulator (hier könnt ihr neben WinVICE auch andere Emulatoren verwenden) gestartet. Da wir VICE extra eingerichtet haben, solltet ihr dies nun einmal versuchen. - Der letzte Punkt „Build and Debug“, macht nur in Verbindung mit WinVICE Sinn!
Ihr könnt damit das Programm erstellen und im C64 Studio schrittweise abarbeiten, um z. B. Fehler zu finden.Wie dies genau geht, seht ihr im Beitrag „Debuggen“.
Wie geht es weiter?
Dies sollte erstmal reichen. Natürlich gibt es noch sehr viel mehr Möglichkeiten. Aber hiermit möchte ich erstmal nur den Einstieg erleichtern. Das C64 Studio bietet auch eine Hilfe, die ihr zu Rate ziehen könnt.
Wie ihr oben durch vereinzelte Links gesehen habt, gibt es auch bei mir an vielen Stellen weitere Infos zum C64 Studio, z. B. auch im Laufe des Spiel-Tutorials „Ein C64 Spiel in Assembler programmieren“.
Falls ihr Interesse an der Beschreibung weiterer Funktionen des C64 Studios habt, schreibt einfach mal einen Kommentar. Sobald es sich einrichten lässt, werde ich den Text dann ergänzen.
Hallo!
Hast Du auch schon einmal einen Blick auf auf diese Alternative geworfen?
https://marketplace.visualstudio.com/items?itemName=paulhocker.kick-assembler-vscode-ext
Würde mich interessieren, was Du davon hälst.
Hi,
das habe ich mir bisher nicht angesehen, bin mit dem C64 Studio auch voll zufrieden.