Programmieren auf dem Amiga – Teil 2
Im ersten Programmieren auf dem Amiga Tutorial wurden mit WinUAE 2 virtuelle Amiga 1200 Maschinen angelegt. Nun geht es um die Erstellung der Toolchain. Dabei werden wir Notepad++ als IDE nutzen um automatisch den Code zu compilieren und auf den Testrechnern auszuführen.
Programmieren auf dem Amiga – Teil 2
Wesentlicher Bestandteil der Toolchain ist der freie Editor Notepad++. Dieser kann dank dem Plugin System beliebig erweitert werden. Wir machen uns diesen Umstand zu nutzen und erstellen neue Kommandos um externe Programme damit aufzurufen. Doch wir starten erst einmal mit der Erstellung von Batch Dateien.
Ich habe den Ordner Toolchain angelegt und erstelle eine *.bat Datei um den Amiga direkt in der korrekten Konfiguration zu starten.
1 | start C:\Progra~1\WinUAE\winuae64.exe -f "C:\Users\Public\Documents\Amiga Files\WinUAE\Configurations\A1200Test.uae" |
Je nachdem wo ihr WinUAE installiert habt und die Konfigurationsdateien liegen werden bei euch die beiden Pfade etwas anders aussehen. Die WinUAE Konfigurationsdatei der Systeme findet man standardmäßig in folgendem Verzeichnis:
Startet man nun den Amiga mit der *.bat Datei sieht man ein Problem: es wird immer die GUI auch geladen. Das können wir aber durch eine Einstellung beheben. Die Checkbox deaktivieren und die Konfiguration noch einmal neu speichern. Schon erscheint beim nächsten Aufruf nur noch der virtuelle Amiga!
Wir können nun eine beliebige Konfiguration von WinUAE aus einer ausführbaren Datei starten.
Notepad++ als IDE
Damit man Notepad++ als IDE einsetzen kann benötigt man das Plugin NppExec. Das kann man über die Plugin Verwaltung installieren. NppExec ermöglicht das ausführen externer Programme.
Einmal installiert (Neustart von Notepad++ nicht vergessen) findet man unter
1 | Erweiterungen -> NppExec -> Execute... |
einen Scripteditor. Dort legen wir als erstes unser Build Script an:
1 2 3 4 | C:\Users\Werner\Amiga\Toolchain\vasm.exe -m68020 -kick1hunks -Fhunkexe -o C:\Users\Werner\Amiga\Toolchain\test.exe C:\Users\Werner\Amiga\Source\AmigaGameDev\main.asm cmd /c copy C:\Users\Werner\Amiga\Toolchain\test.exe C:\Users\Werner\Amiga\Machines\A1200Test\DH1\test.exe cmd /c copy C:\Users\Werner\Amiga\Toolchain\test.exe C:\Users\Werner\Amiga\Machines\A1200Debug\DH1\test.exe |
Wir starten den Assembler Compiler vasm und übergeben diesem einige Argumente, darunter den Pfad auf die Source Code Datei main.asm. Der macht daraus die mit -o angegebene *.exe Datei. Die zwei weiteren Kommandos kopieren die erstellte ausführbare Datei in das Arbeitsverzeichnis (die DH1 Festplatte) beider virtueller Amigas.
Nun erstellen wir noch 2 Scripts um den Test Amiga und den Debug Amiga zu starten. Das geht ganz einfach mit:
1 | C:\Users\Werner\Amiga\Toolchain\A1200Test.bat |
Analog dazu erstellt man noch ein Script für die ausführbare A1200Debug.bat, welches mit dem Namen Debug abgespeichert wird. Bevor wir nun loslegen können, müssen wir noch die vasm.exe Datei vom ersten Script in den korrekten Ordner legen. Den Link auf die ausführbare Datei findet ihr auf der Projektseite.
Benutzeroberfläche
Nun weisen wir die erstellen Scripte in Notepad++ noch Funktionen zu. Das geht unter:
1 | Erweiterungen -> NppExec -> Advanced Options |
Ich habe da für unsere 3 Scripte jeweils einen Namen als Menüeintrag hinzu gefügt:
Wählt man in diesem Dialog die Checkbox „Place to the Macros submenu“, dann findet man die angelegten Menüeinträge nach einem Neustart von Notepad++ sofort dort wieder:
Als Poweruser wünscht man sich Tastenkürzel. Die Kommandos haben per Default keine Kürzel, wir können aber welche definieren. Das funktioniert unter:
1 | Einstellungen -> Tastatur... |
Die erstellten Scripte findet man im Plugin-Kommandos Reiter! Ich bin dem Tutorial gefolgt und habe SHIFT F10 bis F12 angelegt, solange man keine Kollision mit einer anderen Funktion provoziert sind alle möglich. Da kann man sich spielen.
IDE testen
Wird Zeit nun unsere in Notepad++ eingebaute IDE zum programmieren vom Amiga zu testen. Das funktioniert am besten mit ein bisschen Assembler Code.
1 2 3 4 5 6 7 | START: .lmb: btst #6,$bfe001 bne.s .lmb moveq #0,d0 rts |
Da ich Assembler so gut wie gar nicht kann und das hoffentlich im Zuge der Tutorialserie verstehen lerne habe ich es vom Video direkt abgetippt. Nach dem Betätigen von SHIFT + F10 wird die Konsole angezeigt und uns werden Informationen zum Buildvorgang angezeigt. Ich habe die Datei zuvor als main.asm im Ordner der im Build Script angegeben wurde abgespeichert. Aus der Konsole lässt sich gut ablesen was passiert:
- der vasm Compiler erzeugt aus dem Assembler Source File eine *.exe Datei
- diese wird in den Ordner der DH1 Festplatte des Amiga 1200 Test Rechners kopiert
- und auch in den DH1 Ordner des Amiga 1200 Debug Rechners.
führt man nun jeden der Amigas aus wird man entweder das Programm starten (der Bildschirm bleibt bis zum Mausklick schwarz) oder mit MonAm debuggen.
Optimierungen
Der Editor funktioniert nun schon recht gut um eigene Programme zu schreiben. Was noch fehlt ist Syntax Highlighting.
1 | Sprachen -> Eigene Sprache definieren ... |
Dort die Datei M68K.xml importieren. Nach einem Neustart von Notepad++ findet man in dem Sprachen Dialog neue Auswahl
Das Syntax Highlighting funktioniert auf dem Standard Design. Falls ihr so wie ich ein Dark Theme nutzt habt ihr damit aber Probleme. In diesem Fall müsst ihr entweder die Farben vom XML selber editieren oder darauf verzichten.
Fazit
Im zweiten Programmieren auf dem Amiga Tutorial haben wir die Toolchain finalisiert und über Notepad++ das erste Assembler Programm erstellt und über die Toolchain mit zwei Kommandos compiliert und auf dem Testrechner ausgeführt. Wir sind damit mit der Infrastruktur fertig. Starten wir also das Abenteuer Assembler Programmierung auf dem Amiga 1200.
Alle Artikel dieser Artikelserie:
Programmieren auf dem Amiga
Programmieren auf dem Amiga – Teil 2
Amiga Assembler
Amiga Assembler – Teil 2
Amiga Assembler – Teil 3
Amiga Assembler – Teil 4
Amiga Assembler – Teil 5
Amiga Bibliotheken verwenden