Hallo Besucher, der Thread wurde 31k mal aufgerufen und enthält 170 Antworten

letzter Beitrag von darkvision am

MegaAssembler V3.7 im Quelltext verfügbar

  • Hallo zusammen,


    während ich versuche meine alten Projekte wiederzubeleben hab ich den überarbeiteten Quelltext vom MegaAssembler von 1997 ausgegraben und soweit angepasst das man den Quellcode auch mit einer Original V2-Version übersetzen kann.
    Als ich den Code 1997 angepasst und erweitert habe wurden auch einige Fehler beseitigt. Die letzte Version von mir war die Version 3.6, keine Ahnung mehr ob ich den jemals öffentlich gemacht habe..
    Die Version V3.6 bietet ein paar nette Neuerungen wie etwa Zugriff auf mehr als nur die ersten 13 Quelltexte auf der aktuellen Disk über >>Weiter/<<Zurück-Blättern, eine Auto-Funktion um mehrere Quelltexte in einem Rutsch zu kompilieren und einen um 50% vergrößerten Symbolspeicher (jetzt 24Kb statt 16Kb). Außerdem zusätzliche Pseudo-Opcodes um z.B. den Info-Text im Header festzulegen.
    Die aktuelle Version 3.7 entspricht der 3.6 mit der Ausnahme das der Code so korrigiert wurde das MegaAssembler V2 den Code übersetzen kann.


    Ich hab den Code jetzt auf meiner Area6502 in Form von zwei D64-Images (unter /src/MegaAssembler V3.7) veröffentlicht. Es handelt sich dabei ausschließlich um den Quellcode, es gibt keine fertige Version zum herunterladen! Macht meines Erachtens auch wenig Sinn, denn wer den V2 nicht kennt kann auch mit der V3 ohne Handbuch nicht viel anfangen :D


    Einfach die beiden D64-Images herunterladen und die Inhalte irgendwie auf den C64/C128 übertragen. Ich empfehle alle Dateien auf eine mind. 1571/1581 oder Native-Partition zu kopieren. Alles weitere steht in der Datei info.MegaAssV3 (geoWrite-Text) im ersten D64-Image.


    Ich habe bereits Feedback von einem Tester und der Code lässt sich übersetzen. Wer aber Probleme hat kann hier gerne Fragen stellen. Ich bin aber noch lange nicht wieder so fit am C64 wie vor 20Jahren das ich da mit Rat&Tat zu Seite stehen kann. Werde aber mein möglichstes versuchen.


    Ansonsten: Happy compiling!
    Markus

  • Hallo Markus,


    erstmal herzlich willkommen zurück ;-) .


    Schön, dass Du wieder aktiv mitmachst. Das nährt die Hoffnung in mir, dass die meiner Einschätzung nach 2 in MegaPatch vorhandenen großen Probleme doch noch irgendwie irgendwo irgendwann gelöst werden können....


    Dazu mal vorab eine Frage:
    Du hattest ja im anderen Thema geschrieben, dass Du wahrscheinlich die letzte MP3-Version (Quelltext) auf Deiner Festplatte gefunden hast. Die letzte offiziell veröffentlichte Version von MP3 (64/128) stammt vom 06./09. Januar 2000. Warst Du noch aktiv beteiligt oder hat Wolfgang die schon alleine gemacht? Später (Herbst 2003, kurze Zeit später war dann auch bei Wolfgang Schluß) habe ich nochmal eine neue Version von MegaPatch 128 von ihm bekommen. Eine 64er-Version habe ich davon noch nirgends finden können


    es gibt keine fertige Version zum herunterladen! Macht meines Erachtens auch wenig Sinn, denn wer den V2 nicht kennt kann auch mit der V3 ohne Handbuch nicht viel anfangen

    Warum eigentlich ;-) ?


    Hier im Forum haben wir die F64-Wolke. Zugangsdaten gibt es hier: F64 Wolke .
    Dort wird schon länger unter anderem alles im Bezug auf Geos gesammelt. Software gibt es im Verzeichnis Software\Geos und Anleitungen/Handbücher gibt es unter Handbücher & Bedienungsanleitungen\GEOS-DE-EN liegen auch das Buch zum MegaAssembler und einige zusätzliche Informationen von den "Bachmännern" als PDF. Also kein Problem ;-) .


    Gruß
    Werner

  • So macht kompilieren unter GEOS richtig Spaß!

    Wie gesagt, einen User happy zu machen ist schon Dank genug :thumbsup: Ich muss mich eher dafür entschuldigen den Code 20Jahre unter Verschluss gehalten zu haben :thumbdown:


    Warst Du noch aktiv beteiligt oder hat Wolfgang die schon alleine gemacht? Später (Herbst 2003, kurze Zeit später war dann auch bei Wolfgang Schluß) habe ich nochmal eine neue Version von MegaPatch 128 von ihm bekommen. Eine 64er-Version habe ich davon noch nirgends finden können

    Ich hab alle Partitionen auf meiner HD inventarisiert und die aktuellsten Dateien von MP64 sind vom November 1999. Wenn es später offizielle Releases gab heißt das nicht das da am Code noch was geändert wurde, das könnte nur Wolfgang bestätigen. Allerdings hat Wolfgang damals eher am WinDesk gearbeitet, MP3 war mein Ding..., Daher glaube ich nicht das er (außer einem echten Bug) noch was am Code geändert hat.


    Es kann also gut sein das es ein MP3 nach 11/99 gab, aber evtl. ist der Code der gleiche wie der auf meiner CMDHD. Abgesehen davon: Es gibt doch einen MP3-Thread ?( Warum die Frage hier ???


    Warum eigentlich ?

    Die Wolke hab ich auch schon entdeckt ;)
    Aus der Diskussion Binär-Dateien zu veröffentlichen halte ich mich raus, ich hab da meine ganz eigene Meinung dazu. Was andere mit dem von mir modifizierten Quelltext machen spielt für mich keine Rolle: Ich geb den Quelltext raus, den Rest kann jeder selbst entscheiden. Ob da ein Binary in der Wolke landet hab ich ja nicht mehr im Griff ;) Ich bin da eher Fan von Quelltext, weniger von den fertigen Binaries.


    Bei meinen eigenen Programmen ist das anders, da kann ich den Code und fertige Binaries ruhigen Gewissens unter einer freien Lizenz veröffentlichen.

  • Ich muss mich eher dafür entschuldigen den Code 20Jahre unter Verschluss gehalten zu haben

    Stimmt schon, wenn ich daran denke wie lange ich gebraucht habe den original MegaAss-Quellcode für mich zu erstellen.
    Aber egal ;-)


    Hast Du den V2.0 MegaAss-Quellcode damals selbst erstellt oder von den Programmierern bekommen?


    Pusti64

  • Hast Du den V2.0 MegaAss-Quellcode damals selbst erstellt oder von den Programmierern bekommen?

    Ich weiß gerade nicht welcher, aber mit Hilfe eines Disassemblers zurückübersetzt (düster klüngelt da was von Input64-Disketten), in geoWrite gewandelt und dann so korrigiert das man den Code auch wieder übersetzen kann. Sprich jedes Byte im Quelltext überlegt und dann einer Funktion zugeordnet. Leider genauso wie Du :(


    Also kein "Geschenk" der Programmierer... und daher auch keine 'offizielle' 3.x Version :/

  • Ich habe bereits Feedback von einem Tester und der Code lässt sich übersetzen.

    Kann ich uneingeschränkt bestätigen (getestet auf MP3-128 vom Herbst 2003). Auch in 80-Zeichen habe ich bisher nur zwei kleine Schönheitsfehler bemerkt:


    Die Anzeige der MegaAss-Opcodes im "Verlassen"-Menü ist für 80 Zeichen zu eng. Habe mal etwas damit herum experimentiert und bin für 80-Zeichen hier auf folgende Werte gekommen:


    an der Stelle (:DlgOpcodesInfo)


    alle GOTOX,$38,$00 durch GOTOX,$48,$00


    und


    alle GOTOX,$78,$00 durch GOTOX,$98,00


    ersetzen (bei 80-Zeichen ist rechts in der Box genug Platz).


    Dabei ist mir noch aufgefallen: Vor "Datum (kurz/lang) einbinden" und "Zeit (kurz/lang) einbinden" stehen jeweils 2 GOTOX mit unterschiedlichen Werten. Entweder fehlt zwischen den je 2 GOTOX ein Text oder das jeweils 1. GOTOX kann ersatzlos gelöscht werden.



    Aber wie gesagt: Kleinigkeiten. Das schmälert auf keinen Fall den Gesamteindruck des neuen MegaAss. Einfach Klasse. :tanz:


    Jetzt muss nur noch ein neues "CallMegaAss" her, damit man auch aus Geowrite heraus den neuen MegaAss direkt starten kann .... :P


    DANKE.


    Gruß
    Werner

  • Entweder fehlt zwischen den je 2 GOTOX ein Text oder das jeweils 1. GOTOX kann ersatzlos gelöscht werden.

    Das ist mir auch schon aufgefallen und ist schon eliminiert. Das mit dem Text im 80Z-Modus nehme ich für die nächste Version mal mit auf, Danke.


    Jetzt muss nur noch ein neues "CallMegaAss" her, damit man auch aus Geowrite heraus den neuen MegaAss direkt starten kann ...

    Das hab ich gar nicht vermisst, ich hab da ein selbst-geschriebenes Hilfsmittel das kann beliebige Anwendungen laden und merkt sich auch bis zu 10 Anwendungen oder Dokumente die dann über einen Quickstart direkt aufgerufen werden können. So kann ich auch geoPaint über den kleinen Umweg aus geoWrite heraus starten, direkt eine geoPaint Zeichnung öffnen oder eben auch den MegaAss :)
    Vermutlich würde man dem alten CallMegaAss die neue Version beibringen können in dem man die Klasse patcht. Ich vermute mal das Programm sucht den MegaAssembler über die GEOS-Klasse und nicht über den Dateinamen. Das einzige was dann glaub ich nicht mehr geht ist den Linker direkt aufzurufen. Ich hab für CallMegaAss aber keinen Code... wie gesagt: Ich hab das schon damals nicht gebraucht :D

  • Das hab ich gar nicht vermisst, ich hab da ein selbst-geschriebenes Hilfsmittel das kann beliebige Anwendungen laden

    Ja, müßte StartFile oder so heißen, wenn mich meine Erinnerung nicht täuscht.
    Das sollte sogar irgendwo in der F64-Wolke in der GUC-Geothek Rubrik 1 als Programm vorhanden sein.


    Ich hab für CallMegaAss aber keinen Code...

    Macht nichts ;-) .


    Wenn ich @Pusti64 richtig deute (siehe ein paar Postings vor), arbeitet er schon dran. Sind ja in der originalen Version nur ca. 2 kB. Für die neue Version müßte ja nur der Start des MegaAss an die neue Version angepasst werden. Der Linker-Aufruf kann komplett entfallen ....


    /public/Forum64_Wolke/Software/Geos/Apps+Tools/Geos V2.0_DE/Geos_Mega-Assembler_DE.7z

    Danke für's raussuchen.


    Aber wie schon von darkvision vermerkt, hier gibts auch andere Möglichkeiten

    Ja klar, aber darkvision hatte auch damals schon nur C64 so dass das Programm wohl nur in 40-Zeichen läuft. Das mag ich nicht so ;-) . Arbeite hier lieber auf 80 Zeichen ;-) (Geos 128 und MP3-128) ...


    Gruß
    Werner

  • Macht nichts .


    Wenn ich @Pusti64 richtig deute (siehe ein paar Postings vor), arbeitet er schon dran. Sind ja in der originalen Version nur ca. 2 kB. Für die neue Version müßte ja nur der Start des MegaAss an die neue Version angepasst werden. Der Linker-Aufruf kann komplett entfallen ....

    Noch nicht Werner ;-) Wenn ernsthaft Bedarf besteht, dann könnte ich mich aber der Sache gerne annehmen.
    Pusti64

  • Also bevor man da ein Programm rückübersetzt und anpasst: So kompliziert dürfte das mit einem neuen Programm ja auch nicht sein. Man müsste ja eigentlich nur den MegaAss über die GEOS-Klasse suchen und so eine Funktion steckt im MegaAss ja zum suchen von geoWrite. Der Unterschied wäre das man eigentlich gar kein Menü oder eine Dialogbox benötigt. Man klickt unter geoWrite auf "GEOS" , wählt "Call MegaAss" und das Utility startet dann direkt den MA3 ohne lästige Zwischenfragen. Ich hab den Code mal rausgesucht (da lohnt sich das konvertieren vom Quelltext auf den PC :) ). Ich denke den Code etwas anpassen/umstricken und ein neues DeskAccessory erstellen... das müsste doch fast schon reichen :)

  • Habe mir gerade CallMegaAss rausgesucht und angeschaut. Sollte wirklich kein großes Ding sein das anzupassen. Aber gebt mir trotzdem bitte etwas Zeit dafür, ist ja nur ein Hobby ;-)


    Hi Werner,
    wäre es für Dich okay, wenn ich für den Linker einfach GEOPATCH128 platziere? Müsste ich nur ein anderes Icon anfertigen.


    Pusti64

  • GEOPATCH128 hat aber den Nachteil, dass es unter GEOS64 den Commodore abstürzen lässt. Daher ist wahrscheinlich die Idee von Markus die Bessere.


    Ich habe daher bei mir vorerst in CallMegaAss die Klassen auf die vom MA3.7 und GEOPATCH128 angepasst. Damit funktioniert das Ganze zumindest provisorisch unter GEOS128 im 80 Zeichenmodus.


    Pusti64

  • Man klickt unter geoWrite auf "GEOS" , wählt "Call MegaAss" und das Utility startet dann direkt den MA3 ohne lästige Zwischenfragen.

    Sehe ich in diesem Fall ein klein wenig anders ;-) .


    Die Dialogbox hat hier ja auch die Funktion, den Anwender daran zu erinnern, dass das aktuelle Geowrite-Dokument gespeichert sein muss. Man stelle sich vor: Ich bearbeite einen Quelltext, vergesse den zu speichern, rufe den MegaAss auf und assembliere ihn. Hinterher wundere ich mich, warum meine Änderung nicht oder nicht richtig funktioniert und anschließend im Quelltext nicht mehr vorhanden ist ......



    wäre es für Dich okay, wenn ich für den Linker einfach GEOPATCH128 platziere?

    Nicht wirklich.
    Zunächst (damit auch andere verstehen von was wir reden): GEOPATCH128 ist ein guter Disk- und Speicher-Monitor für Geos 128. Er läuft aber nur unter Geos 128 & Co und nicht unter Geos 64 & Co!
    Und das ist das erste Problem, dass ich damit habe. Es sollte wie das Original unter beiden Systemen laufen.


    Das 2. "Problem": Ich kann nicht wirklich nachvollziehen, warum ich beim Wechsel zwischen Geowrite und MegaAss einen Diskmonitor brauche.
    Ich schreibe/ändere einen Quelltext, lasse ihn assemblieren, bekomme dabei einen Fehler, gehe zurück in den Quelltext um dem Fehler zu korrigieren und assembliere erneut. Was andeses brauche ich an der Stelle nicht ;-) .


    Was mir dabei vorschwebt (ausgehend vom Bild von CallMegaAss im MegaAssembler-Handbuch Seite 318):


    -Überschrift anpassen: "Soll MegaAss gestartet werden?"
    -Den Hinweis auf Aktualisierung des GW-Dokuments drin lassen
    -Das ABBRUCH-Icon drin lassen
    -Das Linker-Icon und dazugehörende Routinen löschen
    -Das selbstdefinierte "Assembler"-Icon durch ein System-Icon (YES oder OK) ersetzen



    Nun könnte man meinen, dann schreibe man ein komplett neues Programm. Aber durch den Code des vorhandenen hat man schonmal ein Grundgerüst, weil bei Hilfsmitteln gerade wenn sie auf 64 und 128 in 40- und 80 Zeichen laufen sollen, einiges beachten muss.
    Ein Programm für alle Systeme würde ich favorisieren ;-) .....


    Gruß
    Werner