Eine Würdigung an Turbo Pascal: Herrn M.s Pascal-Sammelsurium
von Herr M. (05.12.2012)Meine Damen und Herren, ich präsentiere Ihnen etwas Einmaliges, etwas das sie nirgends sonst finden werden! Einen Einblick in eine Zeit als eine Textoberfläche völlig ohne graphisches Schnick-Schnack noch als adäquat gegolten hat, als flinke Finger noch über die Tasten tanzten und per Short-Cut alle entscheidenden Befehle in Windeseile ausführten, als Entwicklungsumgebung noch oft genug gleichbedeutend mit Compiler war. Artefakte einer primitiven aber doch sehr effektiven Programmiersprache, die manifestierte Kreativität eines angehenden Jungprogrammierers, Naivität in Reinstform, Quellcode der weit jenseits üblicher Qualitätsstandards steht, nach dessen Übersetzung und Exekution Sie Ihren Augen und Ohren (vor allem den Ohren!) nicht mehr trauen werden. Tagelang werden sie ungläubig vor Ihrer Rechenmaschine sitzen und sich nicht mehr lösen können, von dem Wunder, das ich Ihnen nun offenbaren werde: dem Best-Of meiner Turbo-Pascal-Programme!
Ach, was waren das für Zeiten, als ich Mitte bis Ende der 90er Jahre in die wunderbare Welt des Programmierens vorgedrungen bin. Endlich konnte ich dem Blechtrottel einmal selber sagen was er tun soll! Ein Sandkasten voller Möglichkeiten, unendlich viele Ideen im Kopf, die idealen Bedingungen um Großes(!) zu schaffen. Bescheiden habe ich angefangen, mit schlichten Spielereien, die in ihrer Essenz eigentlich nur ein paar Variablen waren, die eingelesen und dann durch ein IF auf ihren Wert abgeklopft und halblustig kommentiert wurden.
Turbo Pascal 6.0 war wahrscheinlich nicht die schlechteste Wahl, weil es eine relativ mächtige Syntax hatte und mit einer Palette sehr praktischer Funktionen aufwarten konnte (von denen ein schlichtes ANSI-C beispielsweise wohl nur träumen kann). Von farbigem, blinkendem und an einer beliebigen Stelle platzierbarem Text, über Soundausgabe (dessen wichtigste Funktion NoSound() uns unser damaliger Informatik-Lehrer nur allzuschnell eintrichterte), Fenstern (also dem Definieren von Unterabschnitten des Bildschirms) bis hin zu einem sehr leistungsfähigen Grafik-Paket (640x480-EGA-Grafik gab schon was her) war alles dabei. Von der Entwicklungsumgebung ganz zu schweigen: Rasches Umschalten zwischen den Fenstern, blitzschnelles kompilieren, eigenes Farbschema (das ich heute noch verwende), eine Menge einprägsamer Shortcuts und am allerwichtigsten: Ein Index mit wirklich guten Einträgen zu allen Funktionen (samt exzellenten Beispielen), der auch zum Stöbern und neuem Ausprobieren anregte. Hier war wirklich alles versammelt was man für seine ersten Programmierschritte brauchte.
Von den gut hundert Programmen die ich damals angefangen habe, sind sogar ein paar Dutzend in ein halbwegs lauffähiges Stadium gekommen, und von diesen habe ich mir nun meine persönlichen Favoriten herausgesucht. Ein paar davon waren auf diversen Schulcomputern unterwegs, aber damals träumte ich immer davon, sie einer etwas breiteren Öffentlichkeit zugänglich zu machen. Was ich hiermit, mit reichlich Verspätung, tue. Man sollte sich naturgemäß nichts allzu Weltbewegendes erwarten, aber wer auch immer sich mal selbst am Programmieren versucht hat oder auch nur ein wenig ein Herz für die Amateurszene hat, dem verspreche ich, dass er auf seine Kosten kommen wird. :D
Ein Wort noch zum mitgelieferten Quellcode: Den wird der durchschnittliche Programmierer wohl als mittlere Katastrophe einstufen. Seitenlange Subroutinen, nichtssagende Variablennamen, kommentarloses Runterattern endlos verschachtelter Konstrukte. Man mag sich fragen, warum ich den überhaupt in das Paket inkludiert habe. Weil jeder einmal klein angefangen hat und ich die Gelegenheit geben will sich an jene beschaulich unschuldige Zeit zurückzuerinnern, wo das Produkt ultimativ im Vordergrund stand und Planung etwas war, das mehr Zeit in Anspruch genommen hätte, als einfach wild draufloszuschreiben. Außerdem ringt dieser herzerfrischende Dilettantismus dem einen oder anderen sicher zumindest ein Schmunzeln ab. Wirklich wagemutige können sich ja an einer Verbesserung versuchen. ;) Und der ein oder andere Cheat hat sich in fast jedem Programm versteckt…
Alle Programme laufen in DOS und sind durch die entsprechenden EXE-Dateien auszuführen. Die meisten Programme sind sehr selbsterklärend und haben auch kaum die notwendige Tiefe, um eine seitenlanges Manual zu rechtfertigen. Auf moderneren Rechnern empfehle ich die Verwendung von DOSBox mit 3000 Cycles. Normalerweise würde ich das nicht so explizit erwähnen, hier hat es aber eine wichtige Bedeutung: Eine oft gebrauchte Funktion von Turbo Pascal 6.0, das Delay, sprich Warten, ist von der Rechenleistung des Prozessors abhängig. Auf meinem alten 386er liefen die Programme damit so, wie sie mit obigen Einstellungen laufen, während sie auf den späteren Pentiums so gut wie gar nicht warteten, auf heutigen Maschinen… nun da läuft meistens ohnehin kaum mehr ein natives DOS-System darauf.
So, und damit werde ich jetzt ein Programm nach dem anderen starten und frei von der Leber weg schreiben, was mir dazu einfällt. Ich lade ein, es mir gleich zu tun: Anmerkungen, Beschwerden, eigene Erinnerungen oder gar Programme einfach im Forum posten.
BOMBE
Es regnet Bomben! Durch wackeres drücken der Space-Taste können sie dazu bewegt werden, einen Raum-Zeitsprung an den oberen Rand des Bildschirms zu machen. Doch Vorsicht: Jeder dieser Sprünge erhöht die Geschwindigkeit der Sprengkörper. Je tiefer die Bomben fallen, desto mehr Punkte werden am Ende kassiert.
Ein sehr rudimentäres „Spiel“, im 16 Farben ASCII-Textmodus, mit einem Haufen Bugs (beispielsweise muss man der Bombe einen Namen geben, der nicht länger als vier Zeichen sein soll… nichts hindert einen daran es dennoch zu tun) und einem sich sehr schnell totlaufenden Spielprinzip. Die ersten Programmierschritte meines Bruders (selbstverständlich mit meiner Unterstützung).
BSCHON
Hier gibt es eigentlich nicht sonderlich viel zu tun, außer sich von den bunten Farbmustern hypnotisieren zu lassen. Wie der Name schon andeutet sollte das ein Bildschirmschoner werden. Mein Versuch, solche Größen wie Idle Wild oder After Dark zu imitieren. Ein Haufen Farben laufen über den Bildschirm, bilden kantige „Muster“ (manifestierte For-Schleifen) und lassen sich durch Drücken der Enter-Taste stoppen. Schlampiges Design sorgt dafür, dass nicht ordentlich aufgeräumt wird und der Prompt danach in der selben Farbe gehalten ist, die der Cursor beim Malen gerade angenommen hatte.
DUNEQUIZ
Ein Quiz über Dune, jawohl dem Wüstenplaneten voller religiöser Fanatiker. Geschrieben von einem jüngeren Selbst, dass nicht einmal die Bücher gelesen hatte, sondern nur mit Halbwissen aus Film und Computerspielen aufwarten konnte. Genau genommen ist eine allzu tiefgreifende Bücherkenntnis vermutlich eher hinderlich. Nun, wenigsten ist es einigermaßen absturzsicher. Immerhin kann man einen Namen und ein „Haus“ angeben und die Bewertung der Punkte durch militärische Ränge ist ein recht netter Touch. Amüsant ist auch die Werbung am Schluss.
FELDHERR
Das Schlachtfeld ruft! Die Erbtante hat dem Spieler einen Batzen Gold hinterlassen und der will am Söldlingsmarkt gleich gegenüber möglichst gewinnbringend investiert werden. Also rasch den Schwierigkeitsgrad gewählt (wie ich sehe hat da jemand doch glatt ohne mein Wissen einen Schwachmaten-Modus eingebaut… manch einer hat absolut keinen Respekt vor dem geistigen Eigentum anderer Leute :) ), ein paar Landstreicher von der Straße mit Armbrüsten ausgestattet, und schon geht es ab in die Schlacht. Niemals endende Horden des dunklen Lords warten schon begierig darauf, mit Minimalstrategie bezwungen zu werden.
Im 16-Farben-Textmodus und mit Soundunterstützung bietet dieses Spiel ein paar kleinere technische Spielereien. Und immerhin ist ein rudimentäres, wenn auch kaum durchdachtes, Spielkonzept vorhanden.
GIGATRUM
Wahrscheinlich hat jeder, der in den 80ern und 90ern aufgewachsen ist, früher oder später eines dieser Kartensets an flotten Autos, unsinkbaren Schiffen oder steinalten Dinosauriern in der Hand gehalten und seinem Mitspieler(n) stolz verkündet, wie rasch der Wagen von 0 auf 100 beschleunigt, nur um von diesen, breit grinsend, mit einer noch besseren Zeit geschlagen zu werden. Bei uns hießen die Dinger damals Super- oder Megatrumpf und diese Spielerei hier ist mein damaliger Versuch, sie auf einem Rechner umzusetzen.
Nun, immerhin kann man einen Namen eingeben, aussuchen wieviele Karten im Spiel sein soll und es tut fast das, was es verspricht. Mit ein paar kleinen Makeln: Zum einem werden die Karten nach jeden Zug neu gemischt und verteilt (oder um es ein wenig technischer auszudrücken: Faul und unwissend wie ich damals war habe ich die Karten einfach jede Runde per Zufallsgenerator bestimmt), zum anderen gibt es einfach ein paar Autos die ein wenig… unfair sind. Aber am besten ist, man wirft mal selbst einen Blick darauf.
Bemerkung am Rande: So weit ich mich erinnern kann, ist dies eines der allerersten Programme die ich selbst programmiert habe. In Anbetracht dieser Tatsache finde ich, dass es eigentlich sogar relativ lauf- und spielfähig ist.
GRAFIK1
Ein paar Spielereien zum Austesten des mit Turbo Pascal mitgelieferten Grafik-Paketes. Da dieses recht leistungsfähig und deppensicher zu bedienen ist, sind diese ersten Schritte in die 16-farbenfrohe Welt der (damals) höchstauflösenden EGA-Grafik eigentlich zumindest nicht das allerschlimmste was man seinem Bildschirm antun kann.
KOCH1
Zeichnet genau das was der Name vielleicht schon andeutet: eine Koch’sche Schneeflockenkurve. Also ein gleichseitiges Dreieck, auf dessen Seiten wieder gleichseitige Dreiecke gesetzt werden, deren Seitenlänge ein Drittel der ursprünglichen Seitenlänge lang ist, darauf werden abermals gleichseitige Dreiecke mit wieder auf ein Drittel reduzierter Seitenlänge plaziert usw. Am besten einfach starten und anschauen. Nicht unbedingt die eleganteste Implementierung (inzwischen habe ich das auf moderneren Rechnern ein wenig ästhetischer umgesetzt), auch ein wenig langsam… aber es funktioniert.
MAGICS
„Höhle des magischen Schwertes“. Wahnsinn, mein erstes selbstgebautes Computer-Rollenspiel! Und was für eine Augenweide. Doch der unbestreitbare Höhepunkt dürfte wohl der Sound sein. Wer alle hundert Züge mit eingeschalteten Sound durchsteht, muss schon Nerven aus Stahl haben. Also: Die entscheidende Antwort am Anfang unbedingt mit n (für Nein) beantworten und sich dann fröhlich durch einen Zufallsdungeon kämpfen. Als Mensch, Zwerg, Elf oder Gnom gilt es allerlei goldblutende Bestien zu erlegen (von Killergorillas bis Nashörnern), dabei unvermeidlich drei Teile eines Schwertes aufzusammeln, den Händler auszunehmen und zum Schluss den bösen Tyrannen Klumpfuß zu stürzen. Alles klar soweit? Dann ab ins Abenteuer!
MTEST
Ein Testprogramm für Zufallszahlengeneratoren, das ich mal für die Schule entworfen habe. Nachdem man sich einen Zufallszahlengenerator ausgewählt hat, startet der Computer mit einem Pixel in der Bildschirmmitte und bewegt sich von dort in zufälliger Richtung weiter. Sehr praktisch um festzustellen, wie schnell sich die Perioden des Generators wiederholen (bei allzu raschen Schleifen beginnt das Muster recht bald im Kreis zu verlaufen) und um interessante Hintergrundbilder zu erstellen. Eigentlich ziemlich genial…
STARTREK
Der Weltraum – unendliche Leeren. Wir schreiben das Jahr 2003. Dies sind die Abenteuer des Raumschiffs (With Schiff1 DO WriteLn(‚NamS‘);), das mit seiner 1 Mann starken Besatzung unendlich lange unterwegs ist, um neue Klingonenschiffe aufzustöbern, zigtausende Birds of Prey und Schlachtkreuzer aus dem Raum zu fegen. Wenige Lichtjahre von der nächsten Raumbasis entfernt, dringt die (With Schiff1 DO WriteLn(‚NamS‘);) in Quellcode vor, den nie ein Mensch zuvor gesehen hat.
Ein vergleichsweise fortschrittliches Spiel (wenn man vom wie üblich äußerst schlampigen Quellcode einmal absieht). Mit High-Score-Liste, Speicherfunktion und allerlei Spielereien in der Benutzeroberfläche. Schade nur, dass, außer Captain Kirk vom ersten Platz zu stoßen, keinerlei Langzeitmotivation vorhanden ist. Aber für kurze Zeit ist es eigentlich ganz unterhaltsam mit einem Schiff (dessen Namen, Waffentypen und Captain man selbst wählen kann) den ein oder anderen Klingonenkäptn das Leben schwer zu machen.
TEXTAD
„Akwalonte“ ist eigentlich ein viel zu guter Name für dieses Machwerk. Nun ein Textadventure mit extrem beschränktem Vokabular, kaum vorhandener Story, sehr wortkargen Beschreibungen, seltsamem Humor und gefühlten tausenden orthographischen Verbrechen. Ein Art Anti-Monkey-Island? Nun nicht ganz, weil man wie beim Genre-Klassiker nicht sterben kann und die sture Linearität verhindert, dass man etwas falsch machen könnte. Etwas für wahre Extrem-Hardcore-Adventure-Profis, die ich hiermit herausfordere, sich daran zu versuchen und es (ohne in den Source-Code zu blicken) durchzuspielen. ;)
TOLKIEN
Seltsam, aber entgegen meiner ursprünglichen Befürchtung, dass es ein ähnlicher Flop wie der Dunequiz sein würde, ist dieser Quiz tatsächlich gelungen. Es gibt mehrere Themen zur Auswahl, man kann einen Schwierigkeitsgrad wählen und die Fragen sind auch ganz OK (teilweise wirklich fordernd, manche akzeptieren sogar unterschiedliche Antwortmöglichkeiten). Sogar die Titelmelodie hat einen gewissen melodischen Reiz. Halte ich definitiv für eines der brauchbarsten Programme in dieser Sammlung. Auch für Tolkien-Fans empfehlenswert, die hier mal beweisen können, wie tief ihr Wissen wirklich geht (In welchem Zeitalter sind beispielsweise die Elfen erwacht?).
TREPPE
Man wähle ein Objekt, das kurz darauf eine Treppe hinaufzuspringen beginnt und dabei gleichzeitig einen Hörtest startet. Hätte irgendwann mal etwas mehr Interaktivität erhalten sollen, ist aber nie über diese Demonstration der Fähigkeiten der Turbo-Pascal-Graph-Unit hinausgewachsen.