Sokoban in einer überarbeiteten und erweiterten Version für den KC85/4 mit Hauptmenü und 40 Räumen!

Eigentlich war es gar nicht geplant, Sokoban zu verändern bzw. zu erweitern.  Es ist eines der Spiele, die ich immer einmal gern zwischendurch spielte.  Manchmal habe ich mich allerdings gefragt, warum ich das Programm nicht korrekt starten konnte, obwohl die gleiche Datei früher schon funktionierte.  Durch meine Versuche am USB-Stick ist mir das Problem wieder aufgefallen und ich habe mich auf die Suche nach dessen Ursache gemacht.  Ich dachte zuerst, es liegt an meinen USB-Routinen und wollte den Fehler dort suchen.  Doch es liegt am Programmcode von SOKOBAN, denn der Effekt dass nicht immer die richtigen Räume dargestellt werden, tritt auch beim Laden von Diskette oder Festplatte auf.  Ursache ist ein Konflikt mit FLOAD, denn SOKOBAN nutzt im gleichen Adressbereich ab 0h Arbeitszellen und initialisiert diese nicht korrekt.  Bei der Programmentwicklung im Kassettenzeitalter ist dies natürlich nicht aufgefallen, da der Speicher dort ungenutzt und damit meist mit 00h vorbelgt war.

Den Fehler habe ich nur durch Reassemblieren des Programms gefunden.  Und da ich dann den Quelltext dann einmal hatte, habe ich gleich noch ein paar Erweiterungen vorgenommen.  So habe ich den Code optimiert und den Zeichensatz unmittelbar an das Programm angehängt.  Dazu noch ein Titelbild und ein Menü eingebunden, von dem aus man neben einer Spielanleitung auch noch den Raum direkt anwählen kann. Die Anzahl der Räume habe ich auf 40 erhöht.  Da das Titelbild aber nur in HIRES vernünftig darstellbar war, läuft das Programm nur noch auf dem KC85/4.

So sieht das Titelbild jetzt aus:

Sokoban Titelbild 

Und so dürften die meisten das eigentliche Programm kennen:

Raum 1

Übrigens habe ich mehrere verschiedene alte Programmvarianten von SOKOBAN gefunden und verglichen und dabei festgestellt, dass es meist der selbe Programmcode ist. Dieser enthält am Anfang noch die ursprüngliche Nachladeroutine für zwei weitere Dateien, einmal der Zeichensatz und zum zweiten die Räume, die in der Kassettenversion als einzelne Dateien vorhanden waren.

Leider ist mir der Autor des Urprogramms nicht bekannt. Ich hoffe er hat nichts gegen meine Programerweiterungen.  Falls er zufällig diese Zeilen hier liest, würde ich mich über eine Antwort freuen.

Wer das Programm selbst ausprobieren will, findet dies im Downloadbereich.