
Sokoban fr den JOYCE



Als (bisher) letzter Versuch einer De-Kompilation habe ich das Spiel SOKOBAN verwendet. Gefunden habe ich es im "Software-Archiv des KC-Clubs", in der Rubrik "CP/M-Spiele". Auch dieses Spiel war in TURBO PASCAL 3.x als .COM-Datei kompiliert. Fr die De-Kompilation gilt, was unter QUATRIS beschrieben wurde. 


Das grte Problem war die Anpassung an die Grafik-Routinen. Hier habe ich zurckgegriffen auf Routinen, die im Artikel Turbo-Grafik fr den JOYCE vorgestellt wurde. Hier dann das Ergebnis, zerlegt in drei Dateien: 

* SOKOPCW.PAS, das Hauptprogramm. 
* SOKOGRAF.INC, das angepasste Grafikpaket. 
* SOKOBANJ.INC, Grafik- und Dateiroutinen. 

Hinweis: Der Kern fr die Grafik ist eine Assembler-Routine, die im Common Memory des JOYCE liegt, weshalb dieses Programm ohne Modifikation nicht unter allen CP/M-Maschinen lauffhig ist. (Diese Routine ist aus dem Artikel und leicht modifiziert). Es gibt folgende Zugriffspunkte: 
* _PLOT liegt in $F400 und wird von der Prozedur Plot (als GX_Dot) benutzt, die ber Parameter auf einen Punkt im Video-Speicher zugreift. 
* _CLRGRAF liegt in $F462 und wird von der Prozedur CLRGRAF (als GX_Clr) benutzt, die den kompletter Bildschirm lscht. 
* _X liegt in $F410 und stellt die Speicheradresse fr den 16 Bit Wert der X-Koordinate dar (als GX_X). 
* _YM liegt in $F412 und stellt die Speicheradresse fr den 8 Bit Wert der Y-Koordinate dar (als GX_Y). 
* _YM+1 liegt in $F413 und stellt die Speicheradresse fr die Art des Zugriffes auf den Bildpunkt dar (als GX_M). (Im Programm werden nur die Werte 0 (Pixel setzen) und 1 (Pixel lschen) verwendet). 

Vor der Nutzung der Grafikroutinen werden diese noch in das Common Memory verschoben (mittels der Routine GraphInit). 

Ein Tipp fr die, die selber kompilieren wollen: Es muss eine .COM-Datei erzeugt werden. Wegen der Adresse von _PLOT ($F400) muss die Endadresse auf maximal $F3FF eingestellt werden. 

Ein letzter Hinweis: Zum Aufbau des Spielfeldes werden normale Textdateien verwendet, in denen jeweils fnf Spielfelder enthalten sind. Bei Auswahl einer Spielebene wird eine dieser Dateien eingelesen und in ein internes Spielfeld gewandelt. Die Dateien haben Namen SOKO-x.PIC, wobei x von 0 bis 11 laufen kann.

Werner Cirsovius  //  September 2004 

 


Sokoban fr den JOYCE

