Älteres


Begonnen hat dieses Interesse während meinem Fernstudium zum "Staatlich geprüften Techniker für Elektrotechnik".
Ausgelöst durch die Programmierung der CPU's 8080 und 8085 in "Assembler",habe ich mir dann irgendwann einen eigenen "Computer" gekauft. Damals Mode waren die "Commodore C64"; ich jedoch kaufte mir einen "Schneider CPC 464". Grund war die in diesem Rechner eingebaute CPU "Z80". Diese war eben abwärtskompatibel zu den CPU's 8080 und 8085 und hatte durch einen doppelten "Register-Satz" wesentlich mehr Möglichkeiten.
So hatte ich das Equipment, das im Studium Erlernte auch zu Hause weiter zu vertiefen.

Ein weiterer Grund war, daß einer meiner Freunde schon einen Schneider CPC 464 besaß. Hier hatte ich schon einige Erfahrung in der Programmierung unter "Locomotiv Basic" sammeln können.

... ach ja, spielen konnte man auch damit ...

Mein erstes eigenes Basic-Programm zeigte eine analoge Uhr auf dem Bildschirm an. Diese ging, nach einigen Modifikationen, sogar sehr genau!

Irgendwann fragte mich ein Kollege, ob ich nicht per Computer eine Preisfrage aus einer Schach-Zeitschrift lösen könne. Ich sagte ihm zu es zu versuchen.

Schon wurde es eine lange Nacht...


Und hier die Preisfrage:
Wieviel Möglichkeiten gibt es, 8 Damen (Schachfiguren) auf dem Schachbrett so zu positionieren, ohne daß sich eine Schlagmöglichkeit ergibt?

Puhh, wie geht man das an?
Nach einigen Stunden hatte ich die Lösung. Ich ließ das Programm rechnen und mir die Ergebnisse als Koordinaten direkt auf einen Drucker ausgeben.
Siehe da, nach ca. 23 Minuten meldete das Programm "Ready" und war somit fertig.
Man beachte, das war ein Programm in Basic geschrieben!

Stolz präsentierte ich meinem Kollegen am nächsten Tag (nein, am gleichen Tag morgens) das Ergebnis. Er begann sofort die Positionen auf dem Schachbrett (bemalte Stahlplatte) nachzustellen, da er selbst nach mehreren Stunden kein Ergebnis erzielt hatte.
Ich erhielt sein Lob und gleich eine neue Aufgabe. "Kannst du das auch in Assembler programmieren?" fragte er mich.
Und schon schien die nächste Nacht zum Teufel. Wieder nach einigen Stunden "meinte" ich die Lösung zu haben. In Assembler war mir jedoch, zum damaligen Zeitpunkt, die direkte Ausgabe auf einem Drucker zu schwierig. Ich ließ die Ergebnisse in einen definierten Speicherbereich schreiben, welche ich dann manuell zum Drucker auslesen ließ. Nach dem Start des Programms erschien sofort wieder "Ready" auf dem Bildschirm. Ich glaubte an einen Fehler und startete nochmal.
Wieder sofort "Ready"! Ich kontrollierte den benannten Speicherbereich und erkannte nur korrekte Ergebnisse (im Vergleich zum Basic-Programm). Sicherheitshalber habe ich dann diesen Speicherbereich am Anfang des Programms definiert auf "FF" programmiert und weiterhin einen Zeitzähler implementiert.
Neuer Start, wieder Ready, nach genau 2,23 Sekunden! Ergebnisse? Alle korrekt!

Whow, ist das ein Unterschied zwichen Basic und Assembler!

Ja, ja, so entwickelte sich mein Interesse für den Bereich Datenverarbeitung (heute "IT" genannt).
So nach und nach schmiedete ich den Gedanken mein "Hobby" zum "Beruf" zu machen, was mir auch gelang!