Hallo Besucher, der Thread wurde 32k mal aufgerufen und enthält 133 Antworten

letzter Beitrag von WalkThatWay am

Relaunch64 V3 - Finale Version erschienen!

  • Vielen Dank für die Rückmeldung!

    == Bug ==
    * die Menübefehle bzw. funktionieren erst ab Zeile 2. (In Zeile 1 tut sich nichts!)

    Hast du ein Code-Beispiel? Bei mir klappt es,

    Zitat

    *
    Ein Aktualisierung der Labelliste mit dem kleinen Icon rechts neben der
    Filtereingabe. (auch wenn der Filter nicht benutzt wurde)

    Ist implementiert.

    Zitat

    * In den
    "Quick references" sollte man für die CIA ein eigenes Register
    erstellen. (momentan sind die CIA-Daten im "Color Ram"-Register
    eingelagert)

    Hab ich geändert. Ist jetzt nur noch CIA, der Wert zum Farbram ist in der VIC-Registerkarte.

    Zitat

    * In den Preferences einen Zeichensatz mit fixer
    Zeichenbreite (z.B. Courier New) als default-Einstellung verwenden. (ok,
    einmal geändert und die Sache hat sich erledigt)

    Ist geändert.

    Zitat

    * In den
    Preferences unterhalb des "Tab width" eine Checkbox "replace tabs with
    spaces" hinzufügen. (siehe Menüfunktion "Convert Tabs to Spaces", nur
    direkt bei TAB-Tastendruck)

    Ok, ist auch drin.



    Darüber hinaus habe ich noch einige Kleinigkeiten verbessert, wie bspw. vernünftige Wiederherstellung der Sidebargröße nach Programmneustart u.ä. Außerdem können Sections jetzt auch ins Code-Folding aufgenommen werden.


    Ggf. ist jetzt Featurefreeze und ein neues Update kommt bald. Auf der Todo-Liste (für eventuell dieses oder folgende Updates) sind noch unter anderem Projekt-Management, Sourcecode-Datenbank, ggf. Markierung lokaler Label in der Sidbar (via Icon o.ä.).

  • ACME Beispielprogramm: sternenhimmel.asm


    Skriptinhalt:

    Code
    1. "C:\Pfad\acme.exe" -v1 --format cbm --outfile OUTFILE SOURCEFILE



    Wenn ich nach dem Öffnen, im Menü <source> den Eintrag <collapse all folds> wähle, bleibt der erste Fold offen. (siehe Bild)
    Fügt man ganz am Anfang eine Leerzeile einfüge, dann funktioniert das auf-/zuklappen.


    -----


    Wenn ich im "Build 20140618" mehrere Dateien geöffnet habe, funktioniert das Schließen der ganz rechten Registerkarte nicht.

  • ACME Beispielprogramm: sternenhimmel.asm

    Woher stammt das Beispiel?

    Code
    1. !ALIGN 64,0 ; auffüllen bis zum nächsten gültigen Spriteblock

    funktioniert hier nur per Zufall (aufgrund einer günstigen Adresse); gemeint ist wohl eigentlich "!align 63, 0":
    "!align 63, 0" fügt NOPs ein, bis die Bits 0 bis 5 des Program Counters Null sind, also bis zum Start des nächsten 64-Byte-Blocks.
    "!align 64, 0" fügt NOPs ein, bis Bit 6 des Program Counters Null wird, d.h.: Ist Bit 6 bereits Null, passiert gar nichts. Ist Bit 6 gerade Eins (was hier der Fall ist), wird bis zum Start des nächsten 128-Byte-Blocks aufgefüllt (was hier zufällig gerade auch der nächste 64-Byte-Block ist).


    EDIT: Ich hab

    Code
    1. !align 63, 0 ; align to C64 sprite block (64 bytes)

    mal in die ACME-Docs aufgenommen.


  • Ok, vielen dank für das Beispiel. Hab den Fehler gefunden und gefixed. Den anderen Fehler (schließen) habe ich vorher schon beseitigt, aber erst nach dem snapshot, der als Download bereit steht. Ich werde heute abend mal einen neuen Snapshot hochladen, sind ja sei vorgestern wieder einige Fehler ausgemerzt worden und kleine Verbesserungen dazugekommen.

  • Kurzer Nachtrag: An deinem Beispiel sieht man auch die Schwierigkeiten der Code-Folding-Routine. Da gleichzeitg Label-zu-Label und manuelles Code-Folding aktiviert ist, geht der erste (manuelle) Code-Fold nicht bis Zeile 9, sondern nur bis 8, wo ein Label ist.


    Was sich in deinem Fall anbieten würde, wäre bspw. Label-zu-Label code-folding aus- und Sections-Code-folding anzuschalten, und dann "Basic-Start", "Hauptprogramm" usw. als Section einzufügen. Das Section-code-folding geht aber erst in der Version, die ich heute abend hochlade ;-)

  • Version 3.2 ist erschienen! Alle downloads unter:
    https://sourceforge.net/projects/relaunch64/files/3.2.0/

    Die Wiki-Seite ist auch bereits aktualisiert:
    http://www.c64-wiki.de/index.php/Relaunch64

    In diesem Update liegen die Schwerpunkt auf dem erweiterten Code-Folding und der überarbeiteten Oberfläche bzw. der Art und Weise, wie die Goto-Einträge dargestellt werden (siehe http://www.c64-wiki.de/index.php/Relaunch64#Goto-Befehle).

    Alle Neuerungen im Überblick:

    • code-folding (see preferences)
    • enable or disable code-folding
    • added automatic code-folding for braces { and } (can be en-/disabled)
    • added automatic code-folding for labels (can be en-/disabled)
    • added automatic code-folding for conditional directives (can be en-/disabled)
    • added automatic code-folding for structures (can be en-/disabled)
    • added automatic code-folding for sections (can be en-/disabled)
    • editor
    • automatic indention works for spaces now, too
    • added commands to automatically convert spaces to tabs (and vice versa, see menu edit)
    • added preference to use spaces instead of tabs when pressing tab-key
    • slightly changed automatic tab/space indention. if "enter" is hit in between leading tabs/spaces, the indention is adjusted to fit the previous lines.
    • shift+enter now inserts new line without automatic indention
    • user scripts
    • added SOURCENAME and OUTNAME as additional placeholders for input and output file names, excluding path and extension
    • added RSOURCFILE and ROUTPUT as additional placeholders for the relative paths of input and output file names
    • the extraction of script- and start-comment-commands (see help) was improved
    • GUI
    • the goto-popup-list was removed and replaced by a sidebar. this allows "surfing" through the goto-destinations (labels, sections, functions...) etc.
    • new textfield under goto-sidebar to find goto-token from sidebar (label, macro, section...) by typing
    • new textfield under goto-sidebar to filter goto-token-list in sidebar when pressing enter-key (label, macro, section...)
    • show/hide goto-sidebar (see menu View)
    • "Compile and run" area was removed. Script-selection moved to log-area, assembler-syntax moved to bottom status bar (and is now part of the "source code information status bar")
    • optionally show file extension in tabs (see preferences)
    • optionally hide "Select script" field (below logs). when selecting a new script, the selection box is shown (when hidden) and hidden again after selecting a script (see preferences)
    • changed colors/appearance of logs
    • tabs of open files may be shown in one row (scrollable, see preferences)
    • by default, a monospaced font is used on all systems (Windows, OS X and Linux)
    • various
    • open included source-file in new tab (when include-directive and included source-file are in caret-line) (see menu file)
    • open all included source-files in new tab (when include-directive and included source-file are in caret-line) (see menu file)
    • open folder of source file, to quickly open a source file's folder in a file explorer.
    • added quick-access to compiler-help (type "ch" into text field on bottom left)
    • Bug fixes
    • tabs on OS X where a bit larger than planned - fixed
    • fixed bug with syntax-highlighting, which, in some specific cases, did not recognize all labels
    • fixed typo in help (user scripts)
    • fixed bug with "insert section" command on OS X
    • fixed minor bugs with comment-commands



    Für die OS X Nutzer unter uns stehen aktuelle binaries für ACME, 64tass, DASM, PuCrunch und Exomizer zum Download bereit:
    http://www.popelganda.de/relaunch64.html

    Gruß
    Daniel

    • the goto-popup-list was removed and replaced by a sidebar. this allows "surfing" through the goto-destinations (labels, sections, functions...) etc.
    • new textfield under goto-sidebar to find goto-token from sidebar (label, macro, section...) by typing
    • new textfield under goto-sidebar to filter goto-token-list in sidebar when pressing enter-key (label, macro, section...)
    • show/hide goto-sidebar (see menu View)


    Simple Sache, aber sehr praktisch! Dankeschön :)


    Hab auch noch einen Verbesserungsvorschlag...


    Was mich ständig nervt, weiß nicht, wie anderen das geht:


    CTRL-F, Suchbegriff eingeben, ENTER findet Suchbegriff - soweit so gut.


    Dann nochmal ENTER: Löscht den vorher markierten gefundenen Suchbegriff und ersetzt durch ENTER (CR). Erwartetes oder gewünschtes Verhalten wäre mit weiteren ENTER einfach zum nächsten Vorkommen des Suchbegriffes zu springen (solange ich nicht wieder im Sourcebereich arbeite). ENTER wäre also, solange der CTRL-F-Bereich ausgewählt ist, das, was jetzt nur durch Klicken auf den Pfeil nach rechts geht.


    Dieses Klicken auf den Pfeil nervt aber.


    Wäre schöner, wenn man halt mit ENTER weitersuchen könnte, und dann durch Klick auf den Sourcebereich dort weiterarbeiten könnte (mit ENTER wieder als reguläres CR). So wird das von vielen anderen Editors standardmäßig auch gehandhabt.


    Kann man ja evtl. auch konfigurierbar machen, falls andere es so mögen, wie es jetzt ist.

  • Ich hab das so umgesetzt, weil ich es gewohnt bin, ggf. einfach eine Fundstelle zu überschreiben, d.h. beim Weitersuchen wird der Eingabefokus ins Textfeld gesetzt, um dann ggf. einen markierten Suchtreffer "überschreiben" zu können. Daher eben F3 statt Enter. Aber ich kann optional auch die Einstellung anbieten, dass der Eingabefokus im Suchbegrifffeld bleibt, dann kann man mit Enter den nächsten Begriff suchen.

  • TTE
    Wenn man das Label-Fenster etwas weiter links positioniert hat und man klickt unten-rechts auf das neue aktualisieren-Symbol wird das Label-Fenster weiter rechts neu angeordnet (bzw. zugeklappt).
    Das nervt dann etwas, da man das "Assembler-log"-Fenster bei ACME immer horizontal scrollen muss, weil bei jeder Fehlermeldung/Warnung immer der lange Gesamtpfad voranstellt wird.


    @MacBacon
    Ja, mit dem Pseudo-Befehl !align hatte ich kurz vor dem Post noch experimentiert, da mich das ständige rumgeschiebe der Spritedaten ziemlich nervte.
    Danke, jetzt ist alles klar.


    Gibt es einen Ausgabemodus in ACME bei denen die Meldungen kürzer (z.B. ohne Pfad) ausgegeben werden?
    statt:

    Code
    1. Error - File c:\Daten\Programmierung\ACME\Testumgebung\sternenhimmel\sternenhimmel.asm, line 23 (Zone <untitled>): Syntax Error


    eine Kurzform wie:

    Code
    1. Error - sternenhimmel.asm, line 23: Syntax Error


    oder noch kürzer (wenn nur eine sourcedatei):

    Code
    1. line 23: Syntax Error
  • Gibt es einen Ausgabemodus in ACME bei denen die Meldungen kürzer (z.B. ohne Pfad) ausgegeben werden?

    Jein. Es gibt keinen speziellen Ausgabemodus dafür, aber dennoch bekomme ich nie absolute Pfade angezeigt - und zwar einfach deshalb, weil ich nie welche angebe. Starte ACME in dem Verzeichnis, in dem der Toplevel-Sourcecode liegt, und lass beim Filenamen den Pfad weg. Fertig.
    Außerdem hat das den Vorteil, dass man innerhalb von Sources, d.h. bei !bin und !src, keine absoluten Pfadangaben benutzen muss.


    EDIT: Unabhängig davon wäre es evtl. ein Vorschlag für TTE, den Log-Output zweispaltig zu machen. Dann wäre die erste Spalte nur für den Pfadnamen (rechtsbündig dargestellt), und bei Bedarf kann man die verkleinern. Hätte auch den Vorteil, dass die eigentlichen Fehlermeldungen direkt untereinander stehen und somit besser erkennbar sind.


  • wer macht denn so einen quatsch? /o\

    Bemüh mal die Forumssuche (oder Google) - es wurde in der Vergangenheit mehrfach von so ein paar Spezialisten empfohlen "immer alles absolut angeben", weil das "wohl besser funktioniert". Immerhin, diese Funde haben mit dazu beigetragen, dass ich mich schließlich hier im Forum angemeldet habe - um in Zukunft energisch widersprechen zu können. ^^

    das ist so kaputt das IMHO der assembler mind. eine warning ausgeben sollte /o\

    Hm, gute Idee eigentlich...
    Dann müsste ich mir aber die Arbeit machen, ACME erst einmal beizubringen, absolute Pfade überhaupt als solche erkennen zu können - und das ist auch noch plattformspezifisch (bei AmigaOS, Win/DOS, Unixen und RISC OS unterschiedlich)!
    Der ironische Oberhammer bei den "Pfadproblemen" ist ja, dass ACME mit Pfaden eigentlich überhaupt gar nichts am Hut hat - was der Benutzer in die Quotes schreibt, wird an die C-Library-Calls weitergereicht, fertig.

  • Jein. Es gibt keinen speziellen Ausgabemodus dafür, aber dennoch bekomme ich nie absolute Pfade angezeigt - und zwar einfach deshalb, weil ich nie welche angebe. Starte ACME in dem Verzeichnis, in dem der Toplevel-Sourcecode liegt, und lass beim Filenamen den Pfad weg. Fertig.
    Außerdem hat das den Vorteil, dass man innerhalb von Sources, d.h. bei !bin und !src, keine absoluten Pfadangaben benutzen muss.


    Du klebst doch wohl die Pfade sauber zusammen, so dass ein absoluter Pfad + relativer Pfad gleich absoluter Pfad ist?
    Da muss man doch nicht erkennen, ob ein gegebener Pfad absolut ist?

  • Da wird nichts zusammengeklebt, und da muss auch nichts zusammengeklebt werden. Solange ACME im richtigen Verzeichnis gestartet wird, ist der absolute Pfad dorthin für den Assembliervorgang völlig irrelevant.
    Vor dem Aufruf von ACME sollte das Verzeichnis, in dem der Toplevel-Source liegt, das aktuelle Arbeitsverzeichnis sein. Im Falle einer Shell wechselt man manuell dort hin (mit "cd"), im Falle einer IDE macht es die IDE, im Falle von Notepad++ macht es das Wrapper-Skript (siehe Wiki).
    Angenommen, der ACME-Aufruf laute

    Code
    1. acme -v9 mysource.a

    ACME startet, liest das Kommandozeilen-Argument "mysource.a" und versucht daraufhin, "mysource.a" zu öffnen.
    In "mysource.a" steht nun irgendwo

    Code
    1. !src "othersrc.a"
    2. !bin "../shared.bin"

    ACME liest den String "othersrc.a" und versucht daraufhin, "othersrc.a" zu öffnen.
    ACME liest den String "../shared.bin" und versucht daraufhin, "../shared.bin" zu öffnen.
    Und, oh Wunder - das funktioniert auch alles! ;)


    EDIT: Und in Fehlerausgaben tauchen natürlich auch nur diese Strings auf, und keine vollen Pfade. Können sie auch gar nicht, da die Pfade völlig unbekannt sind.

  • Dann müsste ich mir aber die Arbeit machen, ACME erst einmal beizubringen, absolute Pfade überhaupt als solche erkennen zu können - und das ist auch noch plattformspezifisch (bei AmigaOS, Win/DOS, Unixen und RISC OS unterschiedlich)!


    naja, in der praxis wird aber wohl reichen auf ":" nach dem ersten zeichen zu prüfen.... alle anderen wissen doch was sie tun =)

  • In der alten Relaunch64-Version von 2003 gab es Probleme, wenn man relative Pfadangaben benutzt. Mit der neuen 3er Version sind diese nicht mehr vorhanden. Seit Version 3.2 hat Relaunch64 neue Platzhalter (RSOURCEFILE und ROUTFILE): Wenn du


    Code
    1. /usr/local/bin/acme -Wtype-mismatch --outfile ROUTFILE --format cbm RSOURCEFILEopen /Applications/Vice64/x64.app ROUTFILE




    verwendest, werden relative Pfadangaben verwendet. Alle Programme, die durch das Skript gestartet werden (Assembler, Cruncher, Emulator) werden im Verzeichnis der Sourcecode-Datei ausgeführt. Das führt dann auch zu "kurzen" Pfadangaben im Fehlerlog.


    Joker: Danke für den Hinweis mit dem automatischen Resize. Ich schau mir den Fehler mal an.