Hallo Besucher, der Thread wurde 9,2k mal aufgerufen und enthält 26 Antworten

letzter Beitrag von Hachel am

Amiga Entwicklung und Programmierung heute wie früher

  • Moin Gemeinde,


    informiere mich gerade wieder aus diversen Quellen bzgl. der Amiga Entwicklung und Programmierung im Gesamten.


    Im C64 Bereich weiss ich (man) schon zum großen Teil seine Quellen;
    Was so früher üblich war an Assemblern (Hypra-Ass, Giga-Ass),
    Zeitschriften (64'er, Input64, MD) und Büchern.
    Heute mit Endurions C64 Studio, ACME, Relaunch, Exomizer.
    Und v.a. wie man diese Dinge zusammenbringt und wie man sich wo bedienen kann.


    Nun daraus ein Schwenk zum => Amiga...


    Wie ist das aber nun im Amiga Bereich? Welche Zeitschriften sind da zu empfehlen, gibt es Kurse, Tutorials, Workshops? Gerne Buchtipps.
    Womit habt ihr angefangen, würdet ihr heute (noch) arbeiten, arbeitet ihr heute?
    (Erinnere mich an Amiga Plus Workshops, die hatte aber häufig Anwendungsprogramme in Demoversionen dabei zum Mitmachen. Auch ne schöne Sache. Aber eben nicht fürs Coden.)


    Welche IDEs, Tools, Programmiersprachen?
    Ich denke AMOS, C auch C++?, Assembler, sowie BlitzBasic sind interessant für mich bzw. allg. brauchbar.
    Über Pascal finde ich nicht so viel, nicht so beliebt/brauchbar?


    Was macht ihr zum CrossDev Arbeiten?
    Wobei IMHO ein einigermaßen ausgestatteter Amiga auf A1200, A3000 Niveau ggf. ja auch schon ausreicht, um sich ans richtige Ding zu setzen.
    Beim C64 durch 40 Zeichen und 64 kB war das eher müßig.


    Also alles in allem hätte ich gerne so eine Art Äquivalenz zu den allseits bekannten C64 Methoden und Tools für den Amiga.


    Ich möchte also in diesem Thread zum Sammeln und Diskutieren einladen.


    :amiga:

  • Über Pascal finde ich nicht so viel, nicht so beliebt/brauchbar?

    Auf dem Amiga war Modula bzw. der Nachfolger Oberon mehr im gebrauch.
    Es gab auch ne eigene PD Serie namens AMOK.
    Ich selber hatte nach einem kurzen Ausflug mit Amiga BASIC kurz Assembler mit DevPac und OMA programmiert und später mit Oberon.

  • Ich hab damals mit DevPac und CygnusEd angefangen und Assembler auch der Kiste gemacht, hauptsaechlich aber Anwendungssoftware mit Betriebssytem.
    Spaeter hab ich dann mit dem Dice-C Compiler auch C Programmiert. Editormaessig wurde es dann auch GoldEd.
    Mit MMU im Prozessor kam noch "Enforcer" zum Bugs finden dazu...


    Eine flickerfreie Darstellung vorausgesetzt finde ich den Amiga dank Multitasking immer noch geeignet um direkt (oder eben emuliert) darauf zu programmieren.
    Man sollte halt oft speichern wegen des fehlenden Speicherschutz und der damit verbundenen Absturzrisiken.


    Als Dokumentation hatte ich damals diese beiden Buecher. Kick 2.0 und spaeter hatte ich dann elektronisch...

  • Mich interessiert auf dem Amiga nur der OCS Chipsatz also Amiga 500, 2000 und 1000. Dort programmiere ich dann nur in 68000 Assembler, ohne Turbokarte und mit 512kChip 512kSlow/RangerMem. Ein Freund der Workbench bin ich auch nicht, also bei läuft das über ADFs und CLI unter Kickstart1.3. Sowas schönes wie das C64Studio gibt es leider für den Amiga nicht.


    Wenn du auf dem PC was für den Amiga programmieren möchtest, dann finde ich die Lösung hier mit Visual Studio Code(mein neuer Lieblingseditor, danke M$) sehr schön: https://github.com/prb28/vscod…mbly/wiki/Getting-started
    Hardware Referenz: http://amigadev.elowar.com/rea…anual_guide/node0000.html
    Als Einstieg kann dir diese Playlist von Scoopex empfehlen:

  • Genau: DevPac,AsmOne waren meine Freunde. Und das Sybex Profibuch oder hieß es Systemhandbuch, jedenfalls ein richtig dicker Wälzer mit allen dokumentierten Systemfunktionen und auch der (OCS-)Hardware.
    Ich finde das Buch nur nicht: zu Hause oder auch im Netz....

  • Ich nutze am Amiga SAS/C & Devpac, als Editor CygnusED 4. Für nicht-systemkonforme Sachen und manchmal auch bei Systembibliotheken greife ich auf WinUAE zurück und nutze dann z.B. Notepad++, da sich diese Dinge so einfacher und schneller testen lassen.


    Am meisten Spass macht es natürlich auf der echten Maschine. :)

  • Womit habt ihr angefangen, würdet ihr heute (noch) arbeiten, arbeitet ihr heute?

    Angefangen damals[tm] mit dem SEKA-Assembler (nicht zu empfehlen), dann mit Hilfe des SEKA einen eigenen Assembler geschrieben und lange verwendet. Heute nur noch Cross-Development auf dem PC mittels WinUAE (und ebenfalls eigenem Assembler).

    Wobei IMHO ein einigermaßen ausgestatteter Amiga auf A1200, A3000 Niveau ggf. ja auch schon ausreicht, um sich ans richtige Ding zu setzen.

    Mein Amiga1200 hat eine 68030-Blizzard-Karte und 50Mhz. Früher[tm] habe ich damals sehr viel damit programmiert. Heute (, wo Zeit immer kostbarer wird,) ist mir jedoch auch das zu langsam und umständlich. Editor, Assembler sowie weitere Tools auf dem PC sind einfach leistungsfähiger und komfortabler.

    Kurse, Tutorials, Workshops

    Gab es früher in der Amiga-Zeitschrift zu diversen Themen. Buchempfehlung: "Amiga Intern" von DataBecker. Heutzutage gibt es aber die meisten Informationen frei im Netz, nur wenn es wirklich an die tiefen Schichten der Hardware geht, stößt man auf Schwierigkeiten.

    Über Pascal finde ich nicht so viel, nicht so beliebt/brauchbar?

    Wie oobdoo schon schrieb, war man damals[tm] schon weiter und orientierte sich an den moderneren Nachfolgesprachen Modula2 und Oberon. Wenn ich mich recht erinnere, hatten die ersten Versionen von FreePascal noch den 68000 als Zielplattform vor Augen, doch dieses Backend hat man später aufgegeben. Spiele wie "Ports of Call" lassen sich natürlich auch heute noch in C schreiben. Für Actionspiele würde ich jedoch weiter Assembler empfehlen. Der 68000er ist ja recht mächtig und im Vergleich zu anderen 32-Bit-Prozessoren eher leicht zu programmieren.

    Was macht ihr zum CrossDev Arbeiten?

    @steril hatte eine recht praktische Vorgehensweise beschrieben, mit der man Programme entwickeln kann:
    1.) Man installiert unter WinUAE eine "Festplatte", aber nicht als Image, sondern als Ordner im normalen PC-Verzeichnis.
    2.) Dann startet man eine CLI-Eingabeaufforderung und setzt sie auf ein bestimmtes Arbeitsverzeichnis. Außerdem tippt man den Namen des zu testenden Programms bereits ein, so daß nur noch das <Return> fehlt zum Starten des Programms.
    3.) Anschließend fertigt man vom aktuellen Zustand des Emulators einen Snapshot an.
    4.) Das Programm selbst kann man nun vom Assembler in das Arbeitsverzeichnis schreiben lassen. Der Start erfolgt nach Drücken von <Return>. Für einen erneuten Test reicht es aus, den Emulatorzustand zu restaurieren und wieder <Return> zu drücken.

    Mich interessiert auf dem Amiga nur der OCS Chipsatz also Amiga 500, 2000 und 1000. Dort programmiere ich dann nur in 68000 Assembler, ohne Turbokarte und mit 512kChip 512kSlow/RangerMem.

    Ist auch (wenn überhaupt noch) meine Zielplattform. Speichervoraussetzung: maximal 1 MB, wobei diese aber nicht auf 512kChip/512kSlowmem verteilt sein müssen, sondern auch z. B. als 1Mb Chip vorliegen können (A1200). Turbokarte ist definitiv keine Voraussetzung, wäre aber schön, wenn sie optional unterstützt würde (z. B. für eine höhere Framerate bei 3d-Programmen). Daß ein Programm auf allen Standard-Amigas lauffähig ist, sollte selbstverständlich sein, also keine Abstürze oder Bildgeflacker auf einem 68030.

    Willst du nah am Blech oder eher systemkonform programmieren?

    Das ist wohl die wichtigste Frage, die man sich vorweg stellen sollte, da davon die nachfolgende Arbeitsweise abhängt genauso wie die zugrundeliegende Literatur mitsamt Tutorial/Kurs usw. Wenn man AOS-systemkomform programmieren will, braucht man genaue Beschreibungen der Bibliotheken (Exec...). Will man eher programmieren wie damals[tm], benötigt man eine korrekte Darstellung der Hardware. Es gibt auf dem Amiga halt sowas wie zwei Welten, die nach einer Entscheidung verlangen. Man kann natürlich so anfangen, daß ein Programm zunächst kompatibel ist zum OS, doch mit jedem Mehr, das man aus dem Rechner rausholen will, muß man sich weiter vom OS verabschieden, bis es nur noch zum Starten gebraucht, aber direkt danach abgeschaltet wird.

  • War/ist dein nativer Assembler auch eine IDE mit integriertem Editor?

    Wie man's nimmt. Zuerst hatte ich vom Prinzip her basierend auf vergleichbare Programme für den C64 nur einen Texteditor mitsamt Assembler (, der per Tastendruck vom Editor aus gestartet wurde). Ein Schulkumpel hatte praktischerweise einen Disassembler geschrieben, der ebenfalls integriert wurde. Nach und nach entstand dann aber um das Ganze herum ein eigenes OS mit der Folge, daß ich unter AOS nie wirklich programmiert habe und mich damit auch nicht gut auskenne. :schande:

  • Meine Bibel war damals die erste Version des offiziellen Hardware Reference Manuals (http://www.retro-commodore.eu/…nce-manual-third-edition/). Davon hab' ich auch noch alle drei Ausgaben zuhause. Als Assembler hatte ich auch den Seka, später eine aufgebohrte Version (V1.53), war einer der ersten der 1986 verfügbar war. Und zumindest im Vergleich zum C64 wirklich komfortabel...


    Nach einer kurzen Sichtung des Aminet ist mir aktuell auch der ASM-ONE am sympathischsten. Das Visual Studio Plugin sieht ja mal toll aus... bin nur etwas verwirrt, dass die auf GitHub auch ein debian binary zum download haben. Dachte bisher, dass es für Linux kein Visual Studio gibt.... Wikipedia ist auch noch der Meinung, aber es gibt tatsächlich einen Download auf der Homepage... dann kann ich das ja auch mal ausprobieren :) Danke für den Tipp.

  • Visual Studio Code ist tatsächlich kostenlos für Windows, Linux und OSX erhältlich.


    Aktuell programmiere ich für den Amiga noch mit ASM-One, habe mir aber das Visual Studio Code schon eingerichtet. Eine Workbench auf dem Amiga nutze ich nicht, habe ich früher auch nie. Assembler, DeluxePaint und ProTracker + ein paar Tools. Und so Gott will, werde ich auch mal eine erste Intro fertig haben. Das dauert aber noch ein wenig, da ich noch dabei bin mir die Grundlagen erneut anzueignen.

  • Dachte bisher, dass es für Linux kein Visual Studio gibt.... Wikipedia ist auch noch der Meinung, aber es gibt tatsächlich einen Download auf der Homepage... dann kann ich das ja auch mal ausprobieren :) Danke für den Tipp.

    Bitte nicht Visual Studio mit Visual Studio Code verwechseln. Ersteres gibt es nicht für Linux, zweiteres schon. Code ist ein wirklich toller Editor, der sich durch Plugins sehr sinnvoll erweitern lässt, eine so umfangreiche IDE ist er allerdings nicht.

  • Visual Studio Code ist in JavaScript geschrieben, dafür dürfte der Amiga leider zu schwach sein.


    Den ASM-One finde ich schon Ok, jedenfalls für meine kleine One-File Sachen.


    Mit AmigaOS an sich möchte ich aber nicht mehr wirklich arbeiten. Ich bin einfach von den heutigen Betriebssystemen, den modernen CustomChips(GPUs) und BrowserEngines volle Kanne verwöhnt. Aus Spaß habe ich in WinUAE mal so einen AGA Amiga mit Turbokarte etc. installiert. Aber für mich das alles nix. Auch RTG mit PowerPC und AmigaOS4.1 sieht nicht nach einem OS aus dass ich heute noch nutzen möchte. Mich reizt wirklich nur was ich aus OCS mit 1MB raus holen kann. Darüber hinaus nutze ich den Amiga nur zum Zocken und das auch nur spärlich.

  • Ich hatte früher (ca. 1994-1995) zum Entwickeln O.M.A. 3.0 und eine 68060 TK mit 16 Mb Ram. Das ging sehr gut, da mein damaliges Spieleprojekt auch relativ systemkonform war, konnte ich auch den Source Level Debugger nutzen und hatte mir noch nebenbei ein Debug-Ausgabe Screen gebaut ;). Außerdem habe ich auch manchmal Enforcer genutzt um die Speicherfehler zu entdecken. Die Umgebung würde ich auch derzeit jedem Cross Development System vorziehen. Um das damalige Projekt zu assmeblieren ca. 10.000 Zeilen + einige Binär-Includes hat es mit FastCache auch nur ca. 2-3 Sekunden oder IIRC sogar unter 2 Sekunden gedauert :D


    Bei der Entwicklung auf dem Amiga ist nur doof, das man bei einem schlimmen Fehler neu booten muss. Ein Glück, dass der Amiga nicht so lange zum Neustart braucht, wie ein ein Windows, MacOS oder Linux System :) Emulation wäre natürlich schneller mit WinUAE oder FSUAE ... einfach den letzten Speicherpunkt wieder herstellen.


    Davor habe ich den Maxon Assembler und den Seka Assembler genutzt. Der Maxon Assembler war gut. Der Seka Assembler war sehr gewöhnungbedürftig und auch nur für kleinere Projekte nutzbar.

  • Möchte mal eine kleine Zwischenmeldung machen. Lese hier immer wieder aufmerksam und interessiert mit!


    Ich freue mich über die zahlreichen Rückmeldungen und Erfahrungsberichte, die baue ich auch gerade schon in meine Recherchen ein und teste das ein oder andere an.
    Geht genau in die Richtung, die ich mir vorgestellt habe.


    Werde mir wohl eine kleine eigene Projekt-/Linksammlung dazu zusammenstellen mit (Kurz)Beschreibung auch Eurer Erfahrungen, sortieren und noch genauere Rückmeldung geben bzw. nochmal nachhaken bzgl. der hier angesprochenen Methoden und Software.
    Ist ja doch einiges womit man sich erstmal einige Zeit beschäftigen muss.


    Wenn ich mal rumspinne, was ich mir gerne bauen würde:


    Im Grunde genommen von einfachen CLI Tools (was ich auf dem Amiga aus Linux vermisse), also Skriptsprache bis etwas mit GUI um vorhandene und neue Tools anzuwenden.
    Momentan nervt mich das Archiv- und Diskmanagement (LHA, ZIP, ADF, HDF, IPF) da gibts für mich bislang noch keine eierlegende Wollmilchsau, evtl. kann man mit Diskmaster, DOpus da was machen auch, ja.
    Aber trotzdem interessant: GUI Programmierung, ob Intuition oder MUI und was es so gibt. Im Hinterkopf.
    Weiterhin eine Art HDD Installer/Management, da mich das Geswappe von WHDLoad nervt.
    Ausserdem habe ich ständig das Gefühl der Kram läuft unrund. Vieles würde auch "nackt" bzw. nativ auf A500 mit 1 bis 1,5 MB und HDD laufen mit kleinen Anpassungen, einen Launcher dafür bauen: TOP.


    Zweiter großer Punkt:
    Ähnlich wie auf C64, Assembler mit Hochsprache kombiniert. Sage mal 90% ASM, 10% BASIC (C64). Wobei auf Amiga statt BASIC wohl eher C/C++ oder Pascal, die nahtlose Kombi wie auf C64 BASIC<->ASM ist ja nicht so eng gegeben. Auch in Oberon und E werde ich mal einen Blick werfen.
    Einfach experimentieren was einem so einfällt und wofür es Beispiele gibt. Wissenstransfer. Vielleicht maln kleines Spielchen. Werde an Workshops/Kursen vielleicht weitersehen was mich reizt. Exakt festgelegt bin ich nicht.


    Bin ja auch bei weitem kein Profi in den Programmiersprachen.


    Würde meine Skills/Grundlagen so einschätzen:
    65xx ASM 5/10, BASIC + Dialekte 6/10, Bash 6/10, Python 2/10, 68k ASM, 0/10, x86 ASM 0/10, x86 Java 4/10, x86 Pascal 5/10


    Zielsteckung für mich würde ich sagen low-mid-end Amigas: Kick 1.3 A500 68000 1-4MB OCS/ECS bis Kick 3.1 A1200 030 8-16MB AGA
    Wie gesagt mit ASM/C/x Kombination.


    BTW bei Anwendung der Toolkits wie ClassAct/MUI usw. muss ich sagen da gefällt mir die Performance nicht wirklich, das geht mit Demoprogrammen/Beispielen, die ich bisher gesehen habe, die in C mit Intuition was eigenes auf die Beine stellen oder gar in ASM gemacht sind, wesentlich besser.


    Naja soweit...


    Danke sehr


    Achso, was bisher glaube ich noch nicht angesprochen wurde ist die Developer CD oder sogenanntes NDK (native devkit?) was ist dazu zu sagen? Und Richtung GNU? GCC z.B. gibts da was brauchbares für m68k Amiga direkt oder "nur" CrossDev?
    Werde wohl als nächstes mal schauen wie es mit C auf meinem A500 mit ACA500plus weitergehen könnte.

  • Hmm, zum Lernen von Assembler, würde ich dir dann eben die beiden Assembler, Maxon Assembler und O.M.A. auf dem Amiga empfehlen wegen den guten Debuggern, wenn du null Assembler kannst. Maxon Assembler lässt sich außerdem sehr einfach bedienen :) Mit dem Debugger kannst zu im Zweifel immer sehen, was die entsprechende Assembler Befehle machen. Auch wenn O.M.A. schwieriger zu bedienen ist, kannst du da auch bedingte Breakpoints setzen (IIRC).


    Wenn du Programmiersprachen mixen willst, z.B. Assembler und C, dann würde ich vasm und vbcc nehmen. Es gibt auch make Tools auf dem Amiga. Entsprechend bräuchtest du nur Assembler/Compiler die entsprechend Objekt-Files generieren und später, kannst du sie mit einem Linker zusammen führen. Du musst nur die Funktionen/Variablen entprechend definieren, dass sie jeweils extern sind und nicht im aktuellen Quelltext zu finden sind.
    vbcc und vasm gibt es sowohl für Amiga als auch Windows, Linux etc.
    Wegen dem Lernen, AFAIK gibt es Optionen in vasm und vbcc, in die Amiga Executables, Source Level Debugging einzubauen. vbcc ist allerdings nur C und kein C++ AFAIK


    Wegen einem Installer, es gibt ja den Amiga Installer. IIRC läuft das in so einem Script.


    BlitzBasic könnte auch für dich toll sein, immerhin wurden Spiele, wie Worms, darin geschrieben.


    Was für Code wolltet du noch gleich schreiben? Nen Anwender Tool oder nen Spiel? Oder nur so zum Lernen?


    Die Developer CD ist vor allem wichtig, wenn Du systemkonform programmieren willst. Da sind die Library Includes für C und die Beschreibung der Library Funktionen drin. NDK steht da für Native Developer Kit.