Q U A T R I SAls ersten Versuch einer De-Kompilation habe ich das Spiel Quatris verwendet. Dieses Spiel war in TURBO PASCAL 3.x als .COM-Datei kompiliert. Da in TURBO PASCAL die komplette Run Time Library gelinkt wird, sind die Adressen der Run Time Routinen bekannt, was eine De-Kompilierung vereinfacht. Die Hauptaufgabe war also, die Kontrollanweisungen (IF ... THEN ... ELSE, FOR ... TO, FOR ... DOWNTO, REPEAT ... UNTIL, WHILE ... DO, CASE aus dem disassemblierten Quellcode zu ermitteln. Zum Einstimmen auf das Spiel hier die Original-Dokumentation ... und hier dann das Ergebnis: QUATRIS.PAS Hinweis: Die Geschwindigkeitssteuerung erfolgt über eine interne Variable, der "SysClock". Deshalb ist dieses Programm ohne Modifikation nur unter CP/M lauffähig. Natürlich gibt es kein optimales Programm, also habe ich auch dieses verschlimmbessert. Die interne Variable "SysClock" ist umgangen, der Text eingedeutscht und die Tastatur auf den JOYCE abgestimmt. Außerdem werden doppelte Spielernamen unterdrückt und der Spielstand sortiert - hier also QUATRISJ.PAS
|