Hello, Guest the thread was called5.2k times and contains 78 replays

last post from wweicht at the

MegaAssembler V3.7 im Quelltext verfügbar

  • Ein kleiner Hinweis noch (da bei geoConvert 4 ja das Menü verbreitert wurde):


    Geos 128 hat ein Problem, wenn die rechte Menübegrenzung über 255 hinausgeht. Die Bachmann-Brüder haben da mal ein Patch (AutoExec) geschrieben. Ich hänge das mal hier an. Das Problem betrifft wohl nur Geos 128 und nicht MP3-128.


    Gruß
    Werner

  • $f5: Linker starten.
    Im gleichen Beispiel wird nach dem Laufwerkswechsel mittels Befehlsbyte $f5 der Linker gestartet. Nach dem Befehlsbyte folgt der Name der linker-Datei im Schema der Quelltextdateien, also $f0,"name",$00.

    Gibt es beim Linker auch die Möglichkeit, dass die erstellen Module nach dem Verlinken nicht automatisch gelöscht werden?


    Pusti64

  • Dazu muss man mit den Opcode 'e' oder 'g' auf Speichergrenzen testen, das aktuelle Programm muss diese überschreiten und davor noch einen Fehler einbauen. Dann erscheint zuerst der Hinweis "Bereich überschritten" und danach hängt sich MegaAss beim erstellen der Fehlerliste auf bzw. steckt in einer Endlos-Schleife fest.


    Gerade wenn ich in MegaPatch hier und da ein Byte eingefügt habe kann es schon vorkommen das ein Bereich überschritten wird. Dann reicht ein Tippfehler und nur ein RESET hilft.


    'e' oder 'g' dürften von den meisten eh nicht genutzt werden, daher fällt das evtl. nur mir auf. Aber mich hat das schon vor 20Jahren genervt...


    P.S. hier ein ganz einfaches Beispiel:


    * Der Befehl "brx" statt "brk" erzeugt den Fehler.
    * Der Befehl "brk" liegt bei $0403
    * Der g-Befehl bedeutet $0403 darf nicht überschrieben werden.


    Das Programm ist also 1 Byte zu groß... Dialogbox... Endlos-Schleife.
    Mit der V4 funktioniert das jetzt... es wird einfach keine Fehlerliste mehr erzeugt.

  • Auch wenn Pusti64 das schon gemacht hat, ich hänge die Version CallMegaAssV3 für MegaAss V3/V4 mal hier an, inkl. SourceCode. Ich hab den Code der V2 behalten, kann über newMegaAss=True/False gesteuert werden. Beide Versionen sind auch auf der Disk.


    Ich hab den Code aber nicht wirklich überarbeitet, nur umstrukturiert und für V2 oder V3/V4 angepasst. Scheint auch im 80Z-Modus noch zu laufen. Auch sucht das Tool nur auf Laufwerk A/B oder C/D nach dem Programm. Evtl. passe ich das noch auf 4-Laufwerke an. Bis dahin müssen MegaAss, geoWrite und CallMA zusammen entweder auf Laufwerk A/B oder C/D liegen.


    Hab eine kleine Aufgabe für den DisAssembler unter GEOS gesucht, und da hab ich mich an Call-MegaAss erinnert. War also nur zum testen. Aber vielleicht kann den Code noch jemand gebrauchen.

  • Die Version für V3/V4 funktioniert hier problemlos in MP3-128 in 80 Zeichen (von Laufwerk B getestet).


    4 Lfw Suche wäre nicht schlecht ;-) .


    Und wie ich "damals" schon bei Pusti64 geschrieben hatte, gibt es noch Verbesserungspotential. Für V3/V4 kann das selbstdefinierte Icon "Assembler" weg und durch "Ja" (System-Icon) ersetzt werden.


    Gruß
    Werner

  • Scheint auch im 80Z-Modus noch zu laufen.

    Die Version für V3/V4 funktioniert hier problemlos

    Muss meine Aussage leider revidieren. Ich starte ein Geowrite-Dokument, rufe CallMegaAssV3 auf und MegaAss startet. Wenn ich jetzt MegaAss beende, kommt nachvolziehbar:


    "Absturz nahe $FFFE
    Das Geos-System ist fehlerhaft"


    :-(


    Gruß
    Werner


    PS: Eventuell ein MegaAssembler V4 Problem. Habe jetzt mal Pusti64 's Version probiert und das gleiche Problem .....


    PPS: Seltsam, seltsam. MegaAss V3.9 stürzt auch ab beim verlassen....

  • OK... habs trotzdem mit geoWrite 128 getestet... keine Probleme.
    Ich hab jetzt den Code dafür auf Area6510 hochgeladen. Da sind die vier Laufwerke schon eingebaut. Aber nur als SRC-Release...


    Ich hab auf der SRC-Disk auch weitere Symbol-Tabellen ergänzt. Eine davon (TopSym.MP3) enthält die MP3-Variablen/Register. Nutze ich aktuell für GeoDesk.
    Die TopSym.ROM ist aktuell nur für den C64...

  • OK... habs trotzdem mit geoWrite 128 getestet... keine Probleme.

    So, endgültige Entwarnung, Problem gefunden. Ich sage öffentlich mal nichts dazu ;-) .


    Das oben erwähnte und angehängte Programm von darkvision arbeitet absolut fehlerfrei in MP3-128 auf 80 Zeichen. Meine Nachricht ( MegaAssembler V3.7 im Quelltext verfügbar ) ist also nach wie vor gültig :thnks::respect: (die neue Version habe ich noch nicht probiert ;-) ).


    Gruß
    Werner

  • Habe jetzt auch die neue Version von der 'Area6510' heruntergeladen und erfolgreich mit MegaAssembler V4 assembliert. Funktioniert ohne Probleme.

    :thnks: für das Feedback.


    Du hast recht... da lässt sich einiges optimieren. Das Programm ist ja relativ simpel, ich hab den Code jetzt auch kommentiert/optimiert. Die Icons hab ich behalten, ist ja für V2 sowieso notwendig. Wer will darf da gerne was ergänzen oder verbessern.... einfach D64 mit Source+Binary hier anhängen ;)


    Ich mach da vorerst nicht weiter, sofern da keine Bugs enthalten sind...

  • Du hast recht... da lässt sich einiges optimieren.

    Sicher, mir widerstrebt nur auf die Frage "Soll MegaAssembler gestartet werden?" mit "Assembler" zu antworten ;-) . Für V3/V4 (die alte Version interessiert mich nur noch nahe 0 ;-) ) wäre "Ja" besser. Und das spart im assemblierten Programm einige Bytes ....
    Also entweder die Frage ändern oder (für V3/V4) das USERICON "Assembler" durch "Ja" (System-Icon) ersetzen. Sobald ich etwas Zeit finde mache ich mich da dran. Das Ergebnis wird natürlich hier veröffentlicht.


    Schönen Sonntag noch.


    Gruß
    Werner

  • Und man könnte auch gleich das ABBRUCH-Icon ersetzen.

    Danke für den Hinweis. So genau habe ich mir den Quellcode noch gar nicht angesehen. Einfach nur assembliert ;-) und läuft ja.

    Dann muss man aber auch die Auswertung des angeklickten Icons anpassen

    Logo ;-) . Wie gesagt, muss nur die Zeit dafür finden....
    Momentan liegen meine Prioritäten auf TD 128. Mist, jetzt habe ich es doch verraten ... ;-) (Insider! Muss und soll nicht jeder verstehen ;-) ).


    Gruß
    Werner