000
09.11.2026, 16:43 Uhr
Olli
|
Moin zusammen,
ich dachte - ich berichte einfach mal hin und wieder wo ich stehe bei meinem Projekt P8000 Wiederherstellung Originalquellcode WEGA. Vielleicht interessiert es ja den ein oder anderen 
Nutzen tu ich Claude Code (2 Pro Accounts) Modelle sind entweder Claude Sonnet 5.5 oder wenn es komplizierter wird Claude Opus 5.5
Ziel ist es: Die Originalquellen wiederherstellen, die 1:1 den WEGA 3.1 Installationsstand erzeugen können. Originalquellen ist etwas zu hochtrabend - es werden Quellen erzeugt die genau das ausgelieferte Binärprogramm erzeugen - ob die Quelle 100% genau so im Original aussah bleibt ungeklärt.
Was direkt aufgefallen ist - die Programme in WEGA wurden alle mit unterschiedlichsten Ständen des Compilers und seiner Hilfsprogramme (Parser, Code-Generierer, Optimierer, Assembler) geschrieben. Auch alle diese Compiler-Stände werden rekonstruiert. Es hat sich gezeigt das wirklich eine 100%ige Binärgleichheit erreicht werden muss um wirklich sicherzustellen, dass die Quellen korrekt sind. Eine "Funktionsgleichheit" reicht nicht.
Aktueller Stand:
Die ganze Compilerfamilie (mit Ausnahme PLZ/ASM, PLZ/SYS) steht inzwischen. Es gibt auch schon einige "historische" Compilerstände. Auch habe ich den ausgelieferten Compilerstand als Crosscompiler funktionsgleich unter Linux erstellen lassen. Ich kann also WEGA binaries aus C-Source unter Linux compilieren, assemblieren und linken - sprich erzeugen. Der Kernel ist 100% in Quellcode vorliegend (da hatte ich ja 2008 schon viel Vorarbeit geleistet - damals noch alles 'zu Fuß'). Die libc ist auch rekonstruiert - auch wieder alle historischen Zwischenstände die mir bisher über den Weg gelaufen sind.
Die KI hat viel Prüflogik (sogenannte Corpus) geschrieben die den aktuellen Stand der Programme gegen den ausgelieferten Stand prüft (z.B.: Kann der rekonstruierte Assembler alle Mnemonics umwandeln und die eigene Optimierung von jp/jpr call/calr genauso wie der ausgeliefert). Das ist natürlich am Ende, wenn man ein 100% identisches Binary erreicht hat nicht mehr so wichtig, aber auf dem Weg dahin schon - und vor allem auch bei späteren Weiterentwicklungen.
Wer sich im Detail informieren will: Hier gibt es ein Dokument mit allen Files aus der Standard-Installation von WEGA und wie viele bzw. welche davon schon "exakt" rekonstruierbar sind:
https://github.com/OlliL/P8000/blob/toolchain/WEGA/src/COVERAGE.md
heute habe ich den Kernel zu ende gebracht, aktuell versuche ich noch den C-Assembler auf "exakt" zu bekommen (aktuell ist er nur funktionsgleich) und danach mache ich vermutlich mit Programmen aus /bin weiter.... mal schauen 
Stay tuned!  -- P8000 adventures: http://pofo.de/blog/?/categories/1-P8000 |