atari-home.de - Foren
Software => Software (16-/32-Bit) => Thema gestartet von: sarnau am Mi 23.04.2025, 18:57:38
-
Moin,
Ich hatte dies vor Jahren schon gemacht, aber die Sourcen nie online gestellt. Ich habe mit einem Python Script aus den Assembler-Code wieder C-Sourcen erstellt. Man kann die Version sogar auf einem Mac starten (ich habe dazu ein paar 64-bit Fixes eingepflegt). Zusätzlich habe ich ausführlich die Sourcen dokumentiert.
https://github.com/sarnau/AtariST-MIDIMaze-Source (https://github.com/sarnau/AtariST-MIDIMaze-Source)
-
Ich bin beeindruckt.
-
Danke sehr.
-
Stark.
Ich hab mir noch nicht alles angeschaut, aber ist auch irgendwo der ursprüngliche Assembler-Code, den du als Ausgang genommen hast? Den sehe ich da nirgends. Irgendeine Idee, welcher Compiler ursprünglich benutzt wurde?
Edit: Ah, gefunden. Oha, Alcyon-C. Ja, das macht die Sache erheblich einfacher, wie ich aus eigener Erfahrung sagen kann ;)
-
Der "InverseCompiler" sind die Python Sourcen, welche ich genutzt habe. Braucht etwas Arbeit, aber kann den Code gut zurückübersetzen. Siehe auch MIDIMAZE_SYMBOLS.h innerhalb des Ordners für die Datenstrukturen, Funktionsnamen, etc – der Script nutzt die um einen Source zu erzeugen.
-
Edit: Ah, gefunden. Oha, Alcyon-C. Ja, das macht die Sache erheblich einfacher, wie ich aus eigener Erfahrung sagen kann ;)
Weil Alcyon-C so wenig / nicht optimiert?
-
Moin,
Ich hatte dies vor Jahren schon gemacht, aber die Sourcen nie online gestellt. Ich habe mit einem Python Script aus den Assembler-Code wieder C-Sourcen erstellt. Man kann die Version sogar auf einem Mac starten […]. Zusätzlich habe ich ausführlich die Sourcen dokumentiert.
https://github.com/sarnau/AtariST-MIDIMaze-Source (https://github.com/sarnau/AtariST-MIDIMaze-Source)
Danke dir!
-
Weil Alcyon-C so wenig / nicht optimiert?
Ja, genau. Der erzeugte Code ist ziemlich straight-forward. Bei Pure-C ist das auch noch halbwegs gut zu verstehen, lediglich die Register-Variablen machen manchmal Schwierigkeiten. Bei gcc ist es praktisch unmöglich, C-code zu schreiben der wirklich wieder genau den Assembler-Code erzeugt.
Schlüsselpunkt ist aber in jedem Fall, erstmal die verwendeten Strukturen zu verstehen. Bei TOS war das damals unproblematisch, weil die grösstenteils schon bekannt waren. Bei fremden Programmen wie Midimaze muss man sich die erstmal erarbeiten.