Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Erste Erfahrungen mit AmigaOS-Programmierung
#1
Ich hatte vor zwei Tagen mit einem kleinen Programm angefangen...
Es macht noch nicht viel, es stellt bis jetzt nur ein Paar "Sterne" auf dem Bildschirm da.
Zunächst war die Frage, wie ich denn Anwendungen kompiliere, und da alle meine A500 nur einen "normalen" 68000 installiert haben, würde das etwas lange dauern. Deshalb kommt für mich nur Cross-Compiling in Frage.
Ein entspechender Compiler war auch nicht schwer zu finden. Ich habe mich für die Amiga-GCC-Toolchain entschieden, da ich sowieso auf Debian/Linux programmiere und dort der gcc nativ läuft. Man kann sich die ganzen Tools einzeln runterladen und kompilieren, aber ich habe mich für eine Variante entschieden, die nur ein Paar Befehle zum Kompilieren und Einrichten braucht.
Diese ist unter https://github.com/bebbo/amiga-gcc zu finden.
Als nächstes brauchte ich einen Emulator, um das Programm schneller (und gemütlicher) laden zu können.
FS-UAE war die einzige richtige Wahl für Debian, den hatte ich auch früher verwendet.
Nun brauchte ich noch ausreichend Dokumentation, die ist hauptsächlich in den Headern der AmigaOS-Bibilotheken vom Compiler und in den Autodocs
(https://wiki.amigaos.net/wiki/Autodocs:Main) zu finden.
Die erste Programmversion sollte nur ein Fenster aufmachen und einen Text darstellen, mehr nicht. Also mit Hilfe der Docs und Informationen aus dem Netz
Programm geschrieben, mit cross-gcc kompiliert, erstmal Guru 4. Fehler korrigiert, immer noch gleicher Guru. Dann nochmal Alles überarbeitet, Compileroptionen für Prozessor angeben, Startupcode manuell verändert, nütze alles Nichts. Ein Guru nach dem Anderen. Dann habe ich die Dateigröße im ADF gesehen: immer noch die gleiche vom ersten Versuch. ADF-Opus abgecheckt, hatte immer die ADF korrekt verändert. Dann wieder Emulator gestartet, der hatte doch nicht etwa tatsächlich die ADF zurückgesetzt! Im Emulatorordner geschaut, Cache-Datei gefunden und gelöscht. Läuft, Text und Fenster sind da.
Und hat nur zwei bis drei Stunden gedauert, Danke Cache-Funktion! X(

Was lernt man daraus: 1. Software kann nützliche aber nervige Funktionen enthalten; 2. Gleich im Emulator einen Ordner als HDD einbinden...
Nun zu Heute:
Ich habe die Funktionen von Intuition und Graphics schnell verstanden, aber mein Programm könnte schneller sein, also so schnell wie ein A500 es schafft.
Das Programm ist aktuell so aufgebaut:
- Lade Intuition und Graphics und zusätzlich noch Timer für eine feste Framerate.
- Öffne Screen mit 5 bits (32 Farben) und setze Farbpalette
- Öffne Fenter im Screen mit maximaler Größe (320x200/LORES), setze Cursor auf eine 0x0 große Bitmap um ihn auszublenden
- Initialisiere Backbuffer zum Zeichnen
- Init. Timer auf 25 TPS

- In einer Endlosschleife:

- Setze RSEED, Zeichne 10 Sterne auf Buffer, mit zufälligen Positionen und Farbe, verschoben auf X und Y um Zeit / 2
- Positionen und Farben sind immer die gleichen (mit offset) da SRAND mit dem gleichen Seed aufgerufen wurde.
- Blitte Backbuffer auf Screen
- Warte auf Timer

Da das Fenster kein CLOSE oder CTRL-C empfangen kann (da in den WFLAGS deaktiviert), läuft die Schleife für immer, aber sollte etwas nicht funktionieren, werden alle Ressourcen freigegeben und das Programm ohne Crash beendet.
Ich werde erstmal daran weiter arbeiten, das Programm effizienter zu machen und ein Paar richtige "Features" einzubauen.
Aber für den Anfang reichts. Vielleicht wird was draus Big Grin

Bilder:


Angehängte Dateien Thumbnail(s)
       
Zitieren


Nachrichten in diesem Thema
Erste Erfahrungen mit AmigaOS-Programmierung - von Sen - 19.07.2020, 17:09
[Kein Betreff] - von Jochen - 19.07.2020, 17:48
[Kein Betreff] - von CB1JCY - 19.07.2020, 18:01
[Kein Betreff] - von Jochen - 19.07.2020, 18:25
[Kein Betreff] - von CB1JCY - 19.07.2020, 19:16
[Kein Betreff] - von Jochen - 20.07.2020, 06:00
[Kein Betreff] - von Sen - 20.07.2020, 09:25
[Kein Betreff] - von Jochen - 20.07.2020, 12:02
[Kein Betreff] - von Sen - 20.07.2020, 14:08
[Kein Betreff] - von Jochen - 20.07.2020, 16:55
[Kein Betreff] - von Sen - 20.07.2020, 17:08

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste