


QUATRIS de-Kompiliert



Als 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. 

Hinweis: Die Geschwindigkeitssteuerung erfolgt ber eine interne Variable, der "SysClock". Deshalb ist dieses Programm ohne Modifikation nur unter CP/M lauffhig. 

Natrlich 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. Auerdem werden doppelte Spielernamen unterdrckt und der Spielstand sortiert - hier also QUATRISJ.PAS


program quatris(input,output);
{
  Programm ist die modifizierte Version des de-kompilierten
  Programms QUATRIS.COM, geschrieben von Steven B. Perkins, 1989.
}
{$C-}
const
{ Meldungen }
  ScoreOpt    = 'STAND';
  Programmer  = 'Steven B. Perkins';
  ProgramName = 'Q U A T R I S   2.0';
  Coyright    = 'Copyright 1989 by';
  TotalMs     = 'T O T A L';
  EmpScore    = 'Spielerliste leer';
  ScoreMs     = '          STAND               NAME';
  ChampMs     = ' (Weltbester)';
  AgainMs     = 'Nochmal spielen? ';
  EndScore    = ', dein Endstand: ';
  HitMs       = ' Eingabe <CR>';
  GratMs      = 'Gratulation, ';
  TopTen      = ' du bist unter den 10 Besten!';
  Help1       = ' <- - Nach links      ';
  Help2       = ' ^  - Drehen Uhrzeiger';
  Help3       = ' -> - Nach rechts     ';
  Help4       = ' \/ - Folgender Stein ';
  Help5       = '[+] - Schneller       ';
  Help6       = 'SPC - Stein nach unten';

...

Weiter geht es auf der Homepage von Werner  

http://www.cirsovius.de/ 


Die kompletten Files gibt es auch auf der KaD #70 (Klubzeitung auf Diskette).











