Fruity Frank

Als weiterer Versuch einer De-Kompilation habe ich das Spiel Fruity Frank verwendet. Es wurde als Bonusprogramm auf der Databox 4/1989 (PC AMSTRAD INTERNATIONAL) veröffentlicht. Auch dieses Spiel war in TURBO PASCAL 3.x als .COM-Datei kompiliert. Für die De-Kompilation gilt, was unter QUATRIS beschrieben wurde. Hier dann das Ergebnis - weil der Compiler mit einem Speicherüberlauf reagiert, zerlegt in Einzelteile: FR.PAS, FR1.INC und FR2.INC.

Hinweis: Der Kern für die Figuren sind zwei Routinen, die im Common Memory des JOYCE liegen, weshalb dieses Programm ohne Modifikation nicht unter allen CP/M-Maschinen lauffähig ist.
  • FR_Matrix liegt in $F300 und wird von der Prozedur Setze_Matrix benutzt, die über Parameter das neue Zeichen einstellt. Dies betrifft die Zeichen im Bereich $a0..$e3, also Spezialzeichen außerhalb des druckbaren ASCII-Bereiches. Die Definition der Zeichen erfolgt in der Prozedur Fruit_Init.
  • FR_Msg liegt in $F000 und wird von der Prozedur Video_String benutzt. Hier werden an einer bestimmten Stelle auf dem Bildschirm Zeichen mit Attributen dargestellt. Die Routine basiert auf einem Assembler-Programm, das im Artikel Superscript vorgestellt wurde. Die Ausgabe der Figuren erfolgt jeweils über zwei oder vier Zeichen.
Ein Tipp für die, die selber kompilieren wollen: Es muss eine .COM-Datei erzeugt werden. Wegen der Adresse von FR_Msg ($F000) muss die Endadresse auf maximal $EFFF eingestellt werden.
Zum Einstimmen hier zwei mögliche Spielfelder: