RELAUNCH64 und ACME

Es gibt 42 Antworten in diesem Thema, welches 12.340 mal aufgerufen wurde. Der letzte Beitrag (9. November 2003 um 19:31) ist von MorGor.

  • Ist normalerweise beim ACME im ZIP : DOCS/AllPOs .txt

    Gruesse
    Michael

    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. |

  • Zitat

    Original von Courage
    Ich habe da ein File das genau von $4800 bis $4d00 geht. Ab $4d00 soll dann der Code beginnen.

    Hallo,
    wenn der Code bei $4d00 beginnen soll, dann darf das File auch nur bis $4cff gehen (oder der Code muß bei $4d01 beginnen), da sich sonst ein Byte überschneidet (Speicherzelle $4d00).

    Gruß,
    Dr.Creep

  • Hi Courage!

    Na, noch nicht eingelebt mit ACME & CO?
    Ich probiere zur Zeit selbst damit ein Projekt zu basteln. Dabei Code ich viele kleine Routinchen, welche man immer wieder bei neuen Projekten braucht!

    Die kleinen Codebrocken kann man dann ganz einfach in seinen aktuellen Mainsources per

    ...
    sta $d020

    !SRC "sourcebank/filename.a"

    lda $dc00
    ...

    linken. Der Code aus dem gelinkten Sourcen wird einfach an die Stelle geschrieben, wo auch die Anweisung dazu steht. So bleibt der Mainsource übersichtlicher! Probier das ruhig mal aus. Ich baue zur Zeit mein Wor Wizard Source auf diese Methode um! Ausserdem braucht dann der Relaunch zum Einfärben des Quellcodes nicht mehr so lange.

    Um das Problem mit $d000 bis $dfff kommst du nicht herum. Am besten die schreibst dir einen kleinen Loader, der die benötigten Daten von Disk in den Speicherbereich holt.

    Übrigens, eine Befehlübersicht gibts normalerweise mit dem Acme dazu. Finden tust du diese im DOC verzeichnis im ACME Ordner. Dort gibts eine Datei die sich AllPOs.txt nennt. Schau dir diese mal an :)

    Greets

    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

    Einmal editiert, zuletzt von biguser (7. Oktober 2003 um 17:14)

  • Zitat

    Na, noch nicht eingelebt mit ACME & CO?


    Pah, Du alte Rübennase! Nach 2 Tagen eingelebt? Hab doch gerade erst gestern gelernt, wie man den PC anschaltet! 8o :D

    Danke an alle für die Tips...so langsam(!) fange ich an zu begreifen.

    Noch mal eines: Wenn ich nun aber Code, Grafik oder was auch immer im Bereich irgendwo ab $e000 stehen und das im Relaunch64 eingebunden habe. Was passiert dann, wenn ich das in den Emulator schaufel? Begreift ACME, Relaunch bzw. der Emu, dass im Bereich von $d000 bis $dfff nix hingeladen werden soll oder schreibt er da auch drüber, weil er BIS zu dem Bereich bis $ffff schreibt? Somit wäre es dann ja nicht machbar irgendwas in den Bereich von $d000 bis $ffff zu assemblieren, oder?

  • Hah, hab auch mal was entdeckt. :]

    Wenn man mit ACME files mit gleicher Speicheradresse assembliert kommt das Errorlog und ACME schreit "Warning: Segment starts inside another". Aaaber es ist eine Warnung und KEIN Error! D.h. der code wird trotzdem fertig assembliert...nur wird der EMU nicht gestartet!
    Kann man Relaunch64 irgendwie so einstellen, dass auch trotz Warnung der Emu gestartet wird???

    Wenn jetzt noch die Frage mit dem Bereich ab $e000 geklärt werden würde, dann könnte man endlich vernünftig arbeiten (der Bereich $d000 bis $dfff ließe sich verkraften). also: :help:

  • ich glaube, du müsstest dazu acme im verbose-mode laufen lassen, dann wird auch der emu trotz fehler/warnung gestartet.

    parameter -v3 oder -v? glaube ich...

  • @Schergentoni: Vielleicht gibt es eine knifflige Lösung, um das $d000 Problem zu lösen. Nervig ist es schon, wenn ein programm so groß geworden ist, das man auch diesen Bereich nutzen muss. Wie ich sehe, lädt der Vice auch seine Snapshots einfach von der Commandozeile aus, ohne irgendwie mit $d000 zu konfrontieren, da er in diesem Modus anders lädt.

    Besteht irgendwie die Möglichkeit ein Tool zu schreiben, das den gerade Assemblierten Code in ein VICE Snapshot umbaut, und dieser dem Emu zugeführt wird? Das wäre eine Idee, ob es machbar ist, kann ich nicht recht beurteilen.

    Der Vice ist doch ein Opensource Projekt. vielleicht bekommt man aus dem Source heraus, wie die Snapshots aufgebaut sind?

    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

  • lässt sich eine prg-datei nicht laden, wenn sie $d000 überschreitet?
    und wie sieht es mit einer datei vom d64-image aus?

  • Wenn Du über $d000 im Normal-Modus lädst, wird das RAM überschrieben, was zum Absturz führt. Wenn aber z.B. im Action Replay-Modus lädst klappt es, weil das Modul das RAM während des ladens ausblendet.
    Problem dabei ist, dass der Autostart aber im Action Replay-Modus nicht funktioniert.

    Eine Möglichkeit wäre:
    1. Mit Relaunch editieren und F6 drücken
    2. Emu startet und F3 für den Normal-Modus
    3. das assemblierte File wird geladen
    4. nun Reset und F7 für Action Replay-Modus (speicher bleibt erhalten)
    5. von disk alles files laden, die nach $d000 liegen

    Wenn man den Weg gehen muß (und derzeit ginge es wohl nicht anders) wäre es arg umständlich. Wenn ab $d000 sogar code anstatt daten liegen, wird es noch schlimmer. Außerdem muß man jedes mal, wenn man an den Daten im Bereich $d000 bis $ffff irgendwas ändert es wieder in ein d64-format bringen, damit man es laden kann.

    Du siehst also, dass das Ganze zu Problemen führt?

    Oh, danke für den Tip mit dem "verbose". Wenn ich das so mache, wie Du sagst, dann startet er den Emulator trotz Warnung. Soweit so gut. Allerdings stellte ich fest, dass er dann nur bis max. $d000 assembliert. derzeit eh egal, weil es ja weiter eh nicht ginge. Sollte aber das $d000-problem gelöst werden, wäre zumindest dieses Problem wieder das Alte!

    Hmm, es tut mir leid, dass ich Dir solchen Ärger mache und das Cross-Assembling so aufmische...aber Du hast selbst um Feedback gebeten! Dat hast Du nun davon! :tongue::D

  • Zitat

    Hmm, es tut mir leid, dass ich Dir solchen Ärger mache und das Cross-Assembling so aufmische...aber Du hast selbst um Feedback gebeten! Dat hast Du nun davon.

    kein problem. :wink:

    aber die probleme sind ja eigentlich probleme der anderen programme, nicht von relaunch64. die frage wäre jetzt, ob ich es schaffe, dass relaunch die schwachstellen der anderen programme (nur assemblieren bis $d000, nur laden bis $d000) egalisiert.


    müsste man mal schauen. praktisch wäre in so einem fall ja das automatische konvertieren der prg-datei in ein d64-image, dass dann gleich bei vice "attached" wird. somit müsste man nur noch manuell das file laden.


    weiß jemand, wie man mit c/c++ die dateistruktur von d64-images auslesen/erstellen kann? ich hatte da mal was bei programmers heaven gefunden, aber der code-schnipsel war wohl fehlerhaft.

  • Zitat

    praktisch wäre in so einem fall ja das automatische konvertieren der prg-datei in ein d64-image, dass dann gleich bei vice "attached" wird.

    Jep, das wäre natürlich 'ne super Sache! Und nahezu perfekt, wenn man das assemblierte file in ein schon vorhandenes d64-file packen könnte...dann hätte man auch u.U. gleich die entsprechenden Files parat, falls das eigene Programm nachlädt. Aber ob das möglich ist, weiß ich nicht.

  • klar! leechen...etpacken..und kucken!
    beim ACME sind einige dokumentationsfiles dabei.
    alles was du brauchst...sozusagen.
    bloss dieser ",,2"-skiptrick steht da nicht drin, aber den kennst du
    ja jetzt :)

  • Hi TecMO!

    Also, hab feststellen müssen, dass das ",,2"-skippen doch im Info-file stand. Hatte es nicht gesehen. Schande auf mein Haupt. :rotwerd:

    Zitat

    klar! leechen...etpacken..und kucken! beim ACME sind einige dokumentationsfiles dabei. alles was du brauchst.

    Also nun hab ich gesucht wie 'n Irrer. Kann aber nix sinnvolles finden. Was genau meinst Du? Und vor allem: Wie soll das was Du meinst funktionieren? ;)

  • saugen:Bitte melde dich an, um diesen Link zu sehen.

    entpacken...

    und kucken! da ist ein ordner DOCS...mit massig textfiles. hilft das weiter?

  • ACME (inkl. aller Help und Info-files) habe ich bereits runtergeladen und mir reingezogen. Leider hat uns das bisher bei des Rätsels Lösung nicht geholfen. Meine große Hoffnung ist, dass Schergentoni da irgendwas hinkriegt.

  • Gibt's was neues an der CrossAss-Front? Schergentoni? Hast Du mal geschaut ob was machbar ist? Wenn nicht, gib bitte kurz bescheid, dann werde ich mir wohl oder übel was anderes einfallen lassen müssen! ;(;)

  • bin zu faul nochmal alles durchzuschmoekern...wo lag nochmal das problem? ;D

  • Fauler Hund!!! :P Na ok, weil Du's bist nochmal kurz in Stichpunkten:

    - Ich benutze Relaunch64 (R64) und WinVice (WV)
    - Wenn ich Code assembliere erzeugt R64 ein *.prg-file, welches dann beim Start von WV automatisch gestartet wird.
    - Wenn ich jedoch über den Bereich von $d000 hinauscode, stürzt der C64 ab...logisch.
    - Leider kann man den Autostart von WV nicht benutzen, wenn eine Cartridge (AR6) eingesteckt ist. Es sei dann, man drückt F3 um sie zu deaktivieren...nur dann stürzt er halt ab.
    - Und mit aktivierter AR (F7) funktioniert das automatische laden nicht. Du verstehst das Problem? :]

    Trotzdem eine gute Nachricht: Heute morgen erhielt ich von den Win-VICE-Codern die Nachricht, dass eine Option, etwas unters RAM zu laden, der Wishlist hinzugefügt wurde. Keine Ahnung, wie lange es nun noch dauert, bis die Option verfügbar ist...aber zumindest ein Lichtblick! ;)

  • hallo,

    momentan bin ich sehr beschäftigt und komme kaum zum programmieren. ich melde mich, wenn es etwas neues gibt.

  • Oh, ich wollte auch nicht drängeln. Bin im Moment nur so motiviert, dass ich da so hinterher bin. Die Ganze Sache ist halt sehr interessant!