Installationsanleitungen für Cross-Compiler

    • Installationsanleitungen für Cross-Compiler

      Hallo Leute,

      um den MEGA65-Thread mit Offtopic nicht aufzublähen, verschiebe ich die Diskussion mal nach hier hin!

      Mein Anliegen:
      Ich bin programmiertechnisch stark vom CBM Prg Studio verwöhnt. Doch höre ich und lese immer öfter, dass die Profis unter Euch ganz andere Compiler-Umgebungen vorziehen.
      Mal ist die Rede vom C64Studio, dann von Kickassembler oder von ACME.

      Jeder von diesen Compilern verwendet eigene Erweiterungen in Form von Direktiven, um die Programmierung zu vereinfachen oder komfortabler zu machen. Was mir persönlich fehlt, und da bin ich bestimmt nicht alleine, ist jeweils eine gute deutschsprachige Gebrauchsanleitung mit Beispielen und genauen Beschreibungen der Direktiven.
      Teilweise fängt es schon mit der Installation an. Habe ich ACME installiert, fehlt dem Ding der Editor. Ist ja auch nur ein Compiler. Packe ich jetzt noch einen Editor dazu (z.B. Notepad), dann habe ich am PC jetzt das Problem, wie ich Notepad dazu bringe, mir den Code mit ACME zu compillieren und nach Abschluss mein Programm in VICE zu laden und auszuführen. Gibbet dazu eine Anleitung in Deutsch? Oder kann ACME bzw. Notepad das nicht? Ich kann zwar Englisch, aber nicht wirklich gut. Und ich gehe mal davon aus, dass sich hier im Forum so einige Leute herumtreiben, die gerne auch in Assembler einsteigen möchten, aber auch ihre Schwierigkeiten mit englischsprachiger Dokumentation haben. Mac Bacon hatte mir auf der Bunkerparty geholfen, ACME mit Notepad+ auf meinem Laptop zu installieren, aber irgendwie komme ich damit trotzdem nicht zurecht. Wieder zu Hause, stehe ich nach ein paar Wochen wieder am Anfang und frage mich, wie ging dat noch mal????
      Das C64Studio bekam ich anfangs gar nicht erst gestartet. Gab immer Fehlermeldungen! Die aktuelle Version startet zumindest, doch frage ich mich, was ist der Unterschied zwischen Solution und Project? Hat das C64Studio auch eigene Direktiven? Wo sind die erklärt? In der Hilfe habe ich bei meiner schnellen Suche keine Übersicht gefunden! Wo wird erklärt, wie ich das gezeichnete Bild in meinen Quelltext einbinde? Für Experten, die mit dem Umgang mit dieser Software schon Routine haben, ist das wahrscheinlich total einfach. Ich bin aber Anfänger und stehe da, wie der Ochs vorm Berg!
      Das sind für mich elementare Probleme, die mich daran hindern, mit aktuelleren Entwicklungsumgebungen zu arbeiten, weil mir dazu das passende Handwerkszeug in Form von guter Dokumentation auf deutsch fehlt.

      Das im MEGA65-Thread vorgestellte Buch über die Softwareentwicklung mit dem CBM Prg Studio ist leider auch englischsprachig. Ich arbeite mich mühsam darin voran! Aber wir haben hier im Forum mindestens zwei deutschsprachige Entwickler, die eigene, wahrscheinlich sehr gute Entwicklungsumgebungen programmieren und aktuell halten. Warum können die denn bei Ihren Schöpfungen nicht deutsch-lokalisiert arbeiten?

      Es ist jedenfalls mühsam, wenn man sich die benötigten Informationen überall zusammen suchen muss. Vielleicht erwarte ich auch das Unmögliche oder stelle mich persönlich besonders dumm dar? Ich weiß es nicht! Oder sollen die professionellen Entwicklungsumgebungen nur was für Profis sein? Ich als Anfänger finde mich nicht wirklich zurecht!

      Ich frage mal so in die Gemeinde hinein und ganz speziell an die Programmieranfänger: Besteht denn bei Euch ein Interesse daran, eigene Sachen in Assembler zu programmieren? Und benötigt Ihr auch Hilfe beim Umgang mit den entsprechenden Entwicklungswerkzeugen? Würde mich über Rückmeldungen von Eurer Seite sehr freuen!


      Liebe Grüße!
      ThomBraxton

      DoReCo #55 am Sa. 16.12.2017 :dafuer:
    • Ich bin ja eher der cc65 Freund (auch gerne mit Assembler), aber ich verwende generell virtuelle Maschinen für solche Projekte. Vielleicht wäre das auch was für Dich.

      Dann kannst Du das alles in einer VirtualBox installieren, die dann komplett zum Download angeboten wird. Das Teil musst Du dann nur noch runterladen, in VirtualBox auf dem lokalen PC importieren, starten und alles ist sofort richtig installiert.

      Ist Dir das zu wuchtig, könnte ein Docker-Container eine praktikable Lösung sein, weil Du dann nur noch das Dockerfile verteilen musst.
      Hier könnte ihre Signatur stehen!
    • daybyter schrieb:

      Ich bin ja eher der cc65 Freund (auch gerne mit Assembler), aber ich verwende generell virtuelle Maschinen für solche Projekte. Vielleicht wäre das auch was für Dich.

      Dann kannst Du das alles in einer VirtualBox installieren, die dann komplett zum Download angeboten wird. Das Teil musst Du dann nur noch runterladen, in VirtualBox auf dem lokalen PC importieren, starten und alles ist sofort richtig installiert.

      Ist Dir das zu wuchtig, könnte ein Docker-Container eine praktikable Lösung sein, weil Du dann nur noch das Dockerfile verteilen musst.
      Die Idee ist ja gut, aber das wird daran scheitern, dass Du eine Windows Lizenz extra dafür benötigst. Ich kann z.B. so eine VM erstellen (mache das oft per Hyper-V, VirtualBox und VMWare) mit einer Trial Version von z.B. Windows 7 oder 10 (müsste aber schauen, ob es das gibt), aber dann muss der Enduser immer noch eine Lizenz kaufen und aktivieren. Bitte jetzt nicht mit Linux kommen, mir ist klar, dass man dort umsonst alles aus Paketen & co installieren kann, aber halt kein C64 Studio & co.


      @ThomBraxton :
      • Du benötigst das Microsoft .NET 3.5 für das C64 Studio ( @Endurion : Ist das noch v3.5?). Wenn das nicht installiert ist (und wenn 4.0 oder höher installiert ist, nützt das auch nicht, da es nicht abwärtskompatibel zu 3.5 und tiefer ist), kann sein, dass es crashed.
        Bei neueren .NET Versionen kann man das aber auch eleganter abfangen, dass es dem Enduser das sagt beim Starten.
      • Wenn du „Notepad.exe“ meinst unter Windows: Vergiss das Spielzeug, nimm gleich Notepad++
      • Wie man ACME mit Notepad++ konfiguriert, steht in diesem sehr guten C64 Wiki Artikel
      ___________________________________________________________
      Meine Kreationen: Deviant Art | Toonsup | Flickr | Youtube
      | Twitter
      Avatar: Copyright 2017 by Saiki
    • Hi,
      ACME kannst du mit Relaunch von Daniel (Pogelganda) nutzen und der läuft auf allen Java-Plattformen. Setup ist leicht und Compiling geht per Klick.

      Ich persönlich bin unter Linux unterwegs. Da nutze ich Makefiles und gEdit. Zum gEdit gibt es eine Anleitung im C64 Wiki.
      Zum Mad- Programm hier im Forum von mir hast du ein Makefile was ein Basic-Text in PRG umwandelt, dann ein D64 erstellt, das dann mit Vice gestartet werden kann.

      Wenn du Eclipse kennst, dann gibt es auch ein Plugin zum Entwickeln von 6502 Programmen. Leider nur in Englisch, aber es gibt einiges auf YouTube.

      Ich betreue die FB-Seite zum C64 Club Berlin und compiliere hier und da Tools zum Thema C64 auf Linux/Windows.

      Ich finde es eine gute Idee ein Tutorial zu erstellen, wie man den Einstieg auf Windows/Linux zum Thema findet. Ich würde das nicht auf Assembler beschränken. Basic (patcat, Bas-Edit), Assembler (ACME, Kickassembler), Sprite-Erstellung (Web-Editor), Grafik (Gimp) und Musik (Goat-Tracker).

      Gruẞ Höp
      8 Bit sind genug, sonst komme ich morgens nicht aus dem Bett. %)

      „Nous sommes dans un pot de chambre et nous y serons emmerdés.“
      („Wir sitzen in einem Nachttopf und wir werden darin zugeschissen werden“)
      2.9.1870, Auguste-Alexandre Ducrot

      www.emu64-projekt.de/acme The home of ACME win32 compile.
    • Ich packe mich da mal an die eigene Nase und versuche, die Doku um entsprechende Beispiele zu erweitern.

      Grob gesagt, eine Solution ist quasi eine Arbeitsmappe, ein Projekt ist eine Sammlung einzelner Dateien und deren Einstellungen für ein Kompilat. Eine Solution kann mehrere Projekte enthalten, in der Regel ist es aber 1:1.

      Die speziellen Direktiven von C64Studio sind in der Hilfe unter "3.2 - Pseudo Operations" aufgelistet.
    • Meine Toolchain bei der Entwicklung für den C64 besteht aus
      • GNU make
      • ca65 und ld65 (aus dem cc65 Paket)
      • mkd64 (eigenes tool) zur Erstellung eines D64
      • Vice als debugger (im monitor)
      Dazu kommen dann je nach Bedarf weitere Tools, z.b. git zur Sourceverwaltung, der Exomizer, auch mal goattracker und kleine selbstgebastelte C tools für bestimmte Anwendungsfälle.

      Auf die Art entspricht das einem klassischen Unix-Entwicklungsprojekt -- gesteuert von einem Makefile, ansonsten "one job, one tool". Ein Vorteil ist, dass alle verwendeten Tools "cross platform" sind -- ich kann auf Windows genauso entwickeln wie auf Linux oder BSD.

      Würde denn jemand eine Einführung in diese Methode lesen wollen?
    • Hallo Leute,

      es freut mich, das meine Bitte auf Zustimmung trifft! Bin schon gespannt, wie weit wir gemeinsam kommen! Jetzt schon mal vielen lieben Dank!

      Hoeppie schrieb:

      Ich finde es eine gute Idee ein Tutorial zu erstellen, wie man den Einstieg auf Windows/Linux zum Thema findet. Ich würde das nicht auf Assembler beschränken. Basic (patcat, Bas-Edit), Assembler (ACME, Kickassembler), Sprite-Erstellung (Web-Editor), Grafik (Gimp) und Musik (Goat-Tracker).
      Gerne, gerne, gerne... Müssen sich nur noch Leute finden, die das können und dieses hier auch schreiben...

      zrs1 schrieb:

      Auf die Art entspricht das einem klassischen Unix-Entwicklungsprojekt -- gesteuert von einem Makefile, ansonsten "one job, one tool". Ein Vorteil ist, dass alle verwendeten Tools "cross platform" sind -- ich kann auf Windows genauso entwickeln wie auf Linux oder BSD.

      Würde denn jemand eine Einführung in diese Methode lesen wollen?
      Ja, ich, da ich auch einen Raspberry Pi (Linux) habe und dort auch einiges ausprobieren möchte, doch scheitert es bei mir da schon wieder daran, wie ich dort VICE installiert bekomme. Gibt es als Paket ja nicht! Zumindest weiß ich nicht wo!

      DoReCo #55 am Sa. 16.12.2017 :dafuer:
    • zrs1 schrieb:

      Würde denn jemand eine Einführung in diese Methode lesen wollen?
      Mich würde auf jeden Fall dein MKD64-Tool interessieren (also was es kann und wie man das bedient) und wie man den Vice als Debugger benutzt (also automatsche Übernahme der Symbols).

      Edit: Was macht dein MKD64, was c1541.exe nicht kann?
      PET 2001 / CBM 3032 / CBM 3040+4040 / CBM 8250 (Dauerleihgabe) / C64+1541 / VC20

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von detlef ()

    • detlef schrieb:



      Mich würde auf jeden Fall dein MKD64-Tool interessieren (also was es kann und wie man das bedient) und wie man den Vice als Debugger benutzt (also automatsche Übernahme der Symbols).
      Das geht doch ganz einfach mit Vice mitteln.

      Disk disk.d64 mit Titel "beispiel" und ID "99 2a"" erzeugen
      c1541 -format "beispiel,99 2a" d64 disk.d64

      Datei progfile.prg unter prog-name in die Disk kopieren:
      c1541 -attach disk.d64 -write progfile.prg prog-name

      Es gibt noch weitere Tools die d64 Disks erstellen. Einige basieren auf C, Python oder Perl.
      Hier ist ne kleine Übersicht.
      codebase64.org/doku.php?id=bas…g_files_into_a_.d64_image
      8 Bit sind genug, sonst komme ich morgens nicht aus dem Bett. %)

      „Nous sommes dans un pot de chambre et nous y serons emmerdés.“
      („Wir sitzen in einem Nachttopf und wir werden darin zugeschissen werden“)
      2.9.1870, Auguste-Alexandre Ducrot

      www.emu64-projekt.de/acme The home of ACME win32 compile.
    • detlef schrieb:

      Was macht dein MKD64, was c1541.exe nicht kann?
      Konfigurierbare Anzahl reservierter Sektoren auf Track 18, abweichende DOS-Versionen, zusätzliche Tracks (mit zwei verschiedenen BAM formaten), Interleave pro File konfigurierbar, Schreibschutz pro File, und einiges mehr -- und es ist theoretisch mit eigenen Modulen erweiterbar.

      edit: Scheint ja durchaus Interesse zu geben, dann werde ich bei Gelegenheit mal eine kleine Einführung (Tools zusammenstellen, erste Schritte mit Makefile) schreiben ... aber vorher muss noch 8192 fertig werden :)

      detlef schrieb:

      wie man den Vice als Debugger benutzt (also automatsche Übernahme der Symbols)
      ld65 kann ein Symbol-File erstellen, das Vice lesen kann. Ich lade das immer manuell aus dem Monitor, wenn ich es brauche, aber das lässt sich wahrscheinlich auch durch eine .PHONY rule im Makefile automatisieren, wäre sicher mal ne gute Idee.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von zrs1 ()

    • Arbeite mit cc65 eigentlich nur unter Linux. Hab mir auch Makefiles geschrieben fürs Compilieren bis hin zum Erstellen des d64 und Starten von vice mit demselben. Da ist das am Ende ein Befehl und das Ding läuft nach Änderungen sofort wieder.

      @sys: läuft dieses CBM Studio evtl mit wine? Alternativ soll Docker doch auch unter Windows laufen, dachte ich?
      Hier könnte ihre Signatur stehen!
    • daybyter schrieb:

      @sys: läuft dieses CBM Studio evtl mit wine? Alternativ soll Docker doch auch unter Windows laufen, dachte ich?
      Also, wenn ich viel "Wine" intus habe, ganz sicher nicht :D

      Spass beiseite: Keine Ahnung. Ich könnte es höchstens mit PlayOnMac auf dem Mac probieren. Ich glaube das hat einen Wine Unterbau. Notepad++ und HxD habe ich so am Mac zum Laufen gekriegt und muss mich nicht mit typischer dämlicher Mac Software ärgern.

      Docker? Nie ausprobiert. Bin mit VMWare Workstation sehr zufrieden unter Windows bzw. VMWare Fusion am Mac.
      ___________________________________________________________
      Meine Kreationen: Deviant Art | Toonsup | Flickr | Youtube
      | Twitter
      Avatar: Copyright 2017 by Saiki
    • DMHas schrieb:

      Die Idee mit einer Image-Datei finde ich auch charmant. Ebenfalls Klasse wäre ein Zip-Datei die man nur entpacken bräuchte und alles beisammen hat. Die meisten Entwicklungsprogramme für den C64 sind "portable" nutzbar.

      Die Krönung wäre sowas wie CPCtelera für den C 64, ein komplettes Framework mit allen benötigten Tools.

      •A low-level library with support for: graphics, audio, keyboard, firmware, strings, video hardware manipulation and memory management.
      •A complete set of programming examples to learn from.
      •An API for developing games and software in C and Assembler.
      •A complete multi-platform building system with support for building CDTs and DSKs automatically.
      •Tools for content authoring (audio, graphics and level editing)
      •Automatic installers and wrappers for third party tools (such us emulators or other low-level libraries)
    • daybyter schrieb:

      @sys: aber ne VBox mit nem Debian drin könntest Du doch z.B. starten, oder?
      Ja klar, aber was soll ich damit? Ich arbeite doch nicht mit einer Linux VM, wenn ich alles Tools unter Windows nativ habe oder unter MacOSX als VM mit Windows.
      Es ging mir eher um den umgekehrten Weg.
      ___________________________________________________________
      Meine Kreationen: Deviant Art | Toonsup | Flickr | Youtube
      | Twitter
      Avatar: Copyright 2017 by Saiki
    • zrs1 schrieb:

      ld65 kann ein Symbol-File erstellen, das Vice lesen kann. Ich lade das immer manuell aus dem Monitor, wenn ich es brauche, aber das lässt sich wahrscheinlich auch durch eine .PHONY rule im Makefile automatisieren, wäre sicher mal ne gute Idee.
      Gibt es irgendwo eine Beschreibung des Symbol-Files, das Vice einliest?
      Ich war bisher wohl zu doof, das zu finden. ;)
      PET 2001 / CBM 3032 / CBM 3040+4040 / CBM 8250 (Dauerleihgabe) / C64+1541 / VC20

    • detlef schrieb:

      Gibt es irgendwo eine Beschreibung des Symbol-Files, das Vice einliest?
      Ja, direkt in der online-Hilfe vom Vice monitor:

      Quellcode

      1. (C:$e5cf) help al
      2. Syntax: add_label [<memspace>] <address> <label>
      3. Abbreviation: al
      4. <memspace> is one of: C: 8: 9: 10: 11:
      5. <address> is the address which should get the label.
      6. <label> is the name of the label; it must start with a dot (".").
      7. Map a given address to a label. This label can be used when entering
      8. assembly code and is shown during disassembly. Additionally, it can
      9. be used whenever an address must be specified.
      10. (C:$e5cf) help ll
      11. Syntax: load_labels [<memspace>] "<filename>"
      12. Abbreviation: ll
      13. Load a file containing a mapping of labels to addresses. If no memory
      14. space is specified, the default readspace is used.
      15. The format of the file is the one written out by the `save_labels' command;
      16. it consists of some `add_label' commands, written one after the other.
      Alles anzeigen
      So ein File sieht dann z.B. so aus (exportiert von ld65):

      Quellcode

      1. al 0000EB .appear
      2. al 0000EC .appearat
      3. al 0000C9 .board
      4. al 002543 .board_addpiece
      5. al 002663 .board_canmove
      6. al 002537 .board_init
      7. al 002573 .board_setdir
      8. al 0025CD .board_step
      9. al 000D38 .charset_done
      10. al 000CDF .charset_init
      11. al 000CD7 .dio_endloadarchive
      12. al 0008D3 .dio_init
      13. al 0009E1 .dio_loadarchive
      14. al 000C80 .dio_loadbitmap
      15. al 002085 .dio_loadgamedat
      16. al 0020B7 .dio_savegamedat
      17. al 000946 .dio_setname
      18. al 002218 .dir_get
      19. al 001648 .flt6581_h
      20. al 00163C .flt6581_l
      21. al 001630 .flt8580_h
      22. al 001624 .flt8580_l
      23. al 0009D6 .get_crunched_byte
      24. al 000A5B .get_decrunched_byte
      25. al 000A1C .init_decruncher
      26. [...]
      Alles anzeigen