Any Browser Campaign

Software Patents: Council process segfaulted.

Ausgewählte (Spiel-)Programme für den HP-41CX
English version

Lange ist es her !

Zu Beginn des Jahres 1984, mein Zivildienst näherte sich dem Ende, wurde mir klar, daß ich gar keinen Taschenrechner besaß - ein solcher für mein Studium aber unverzichtbar war. So erkundigte ich mich bei Freunden und Bekannten sowie in diversen Geschäften nach den kleinen Rechenkünstlern, um ein geeignetes Modell für mich zu finden. Von der Schule wußte ich noch, daß z.B. Texas Instruments, Hewlett Packard und Casio Taschenrechner herstellten. Mein Vater besaß einen Privileg 1081 ESR-E von Quelle. Ich wollte mich schon fast auf einen Casio festlegen, als ich meinen Cousin besuchte und der mir seinen HP-41CX zeigte. Ich war sofort begeistert - den mußte ich auch haben ! :-)

Im Februar 1984 kaufte ich mir dann für 865DM den damals besten Taschenrechner - oder besser: Taschencomputer - der Welt, den HP-41CX von Hewlett-Packard ! Die Taschencomputer der Serie HP-41 waren die ersten alpha-numerischen Taschenrechner der Welt, also die ersten Taschenrechner, die nicht nur Ziffern, sondern auch Buchstaben im Display anzeigen konnten. Viele Funktionen waren bereits fest „verdrahtet“, er war programmierbar und man konnte an der Rückseite vier weitere Module einstecken - ungeahnte Möglichkeiten taten sich auf ! Auch gab es bereits von HP sehr viele fertige Programme in Modulen zu kaufen.

Als ich das gute Stück in Händen hielt, kam der erste kleine Schreck : es gab keine „=“-Taste !? Dafür gab es eine große „ENTER^“-Taste - wofür war die nur da ??? UPN - Umgekehrte Polnische Notation - war die Lösung ! Wer einmal damit gearbeitet hat, will nicht mehr - vor allem bei größeren Rechnungen - mit einem „normalen“ Taschenrechner umgehen ! Im Gegensatz zu heute gab es damals noch richtig dicke, ausführliche Handbücher - das Handbuch zum HP-41CX möchte ich als vorbildlich bezeichnen ! Alle Funktionen und Möglichkeiten des Taschenrechners waren bestens beschrieben, so daß ich mich schnell eingearbeitet hatte und bald meine ersten Programme schrieb.

Synthetische Programmierung

Die hohe Kunst des Programmierens ist die der Spiele-Programmierung. ;-) Schon bald wurden meine Programme immer umfangreicher und der Speicherplatz wurde knapp. Der Ausweg aus diesem Dilemma bot sich in Form der sogenannten „Synthetischen Programmierung“. Sie machte neue Zeichen verfügbar, das Alpha-Register konnte als vier zusätzliche Datenregister benutzt werden, die Flags konnten nun noch besser verwaltet werden und einiges andere mehr. Meine Programme bauten schnell auf der „Synthetischen Programmierung“ auf und einige Spiel-Programme wären ohne sie in dieser Form unmöglich zu realisieren gewesen !

Ein paar Links

Für wen das bisherige nur „böhmische Dörfer“ waren und wer keine Vorstellung hat, um welches Spielzeug ;-) es hier geht oder wer mit der „Synthetischen Programmierung“ nicht so viel anfangen kann, der möge sich bitte hier schlau machen. Sicherlich ist auch für den HP(-41C/CV/CX)-Fan interessantes dabei !

Qualität

Seit nunmehr 17 Jahren versieht mein HP-41CX seinen Dienst. Einmal habe ich mir in dieser Zeit einen Akkusatz nachgekauft - ansonsten funktioniert er einwandfrei ! Auch bei den Tasten habe ich bis jetzt keine Ausfälle gehabt, obwohl ich in meinen „heißen“ Programmierphasen sehr, sehr viel darauf herumgetippt habe ! Ich bin sicher, daß er auch noch viele weitere Jahre funktionieren wird ! Das ist Qualität - so, wie man es sich vorstellt !

Kleines Manko . . .

Ein kleines Manko gibt es natürlich auch beim HP-41CX ! ;-) Das ist, wie Ihr Euch sicherlich schon denken könnt, die Geschwindigkeit ! Die müßte viel, viel höher sein - klar ! ;-) Aber auch hier gab es erfreulicherweise Abhilfe : bei der Firma W&W Software Products GmbH in Bergisch Gladbach ließ ich im Herbst 1985 für 120DM an meinem guten Stück einen sogenannten „TURBO“-Umbau vornehmen. Dieser erhöhte die Rechengeschwindigkeit auf das 1,6- bis 1,8-fache der normalen Geschwindigkeit. Alle Programme (auch die Maschinensprache-Programme wie z.B. „PACK“) laufen dadurch schneller. Ebenso werden Tastendrücke schneller verarbeitet. Da der Kartenleser wohl im TURBO-Gang lesen, aber keine Karten beschreiben kann, ist an der Seite ein Mikroschalter angebracht, mit dem man den HP-41CX auf normale Geschwindigkeit umschalten kann. Zusätzlich ließ ich einen weiteren Mikroschalter einbauen, mit dem der erweiterte Speicher abgekoppelt werden kann - bei „MEMORY LOST“ bleibt der Inhalt des erweiterten Speichers jetzt erhalten. So ausgerüstet, konnte es losgehen . . .

Meine (Spiel-)Programme

Nachfolgend möchte ich Euch einige meiner Programme vorstellen. Dummerweise habe ich nicht festgehalten, wann ich die einzelnen Programme geschrieben habe. Sie sind aber alle im Zeitraum von 1985 bis 1990 entstanden. Leider kann ich keine Barcode-Ausdrucke zur Verfügung stellen, so daß Ihr Euch im Zweifelsfalle mit dem Eintippen von Hand behelfen müßt ! Eine weitere Möglichkeit besteht darin, mir leere Magnetkarten zu schicken, die ich Euch dann beschreiben kann. (Zur Zeit geht das leider auch nicht, da mein Kartenleser die Tage „den Geist aufgegeben hat“ ! :-( Ich muß ihn zunächst erst einmal reparieren - was mir hoffentlich gelingen wird !)

Dies sind die (Spiel-)Programme, die sich meiner Meinung nach lohnen, veröffentlicht zu werden. Fast alle machen - wenn auch eher extensiv - von der Synthetischen Programmierung Gebrauch (meistens, um Bytes zu sparen). Ein paar Programme sind so groß, daß sie nicht „am Stück“ in den Hauptspeicher passen. Deshalb wird ein Teil des Codes in den Erweiterten Speicher ausgelagert und mittels Synthetischer Programmiertechniken dort dann ausgeführt. Was dabei zu beachten ist, wird bei den einzelnen Programmen genau erläutert.

In der Regel sehen die Listings so aus, wie sie auch ausgedruckt werden. Die synthetischen Funktionen machen hier eine Ausnahme - alle synthetischen Funktionen sehen beim Ausdrucken völlig anders aus (wenn man sie auch mittels einer Byte-Tabelle identifizieren kann) ! Der einfacheren Lesbarkeit wegen habe ich hier die Funktionsnamen ausgeschrieben. Ein weiteres „Problem“ diesbezüglich stellen synthetische Programmzeilen dar, deren Inhalt in Register kopiert werden. In diesem Fall werden die einzelnen Zeichen beim Ausdruck in der Regel vollkommen verschluckt beziehungsweise man kann anhand des Ausdrucks nicht erkennen, um welche Bytes es sich handelt. In diesem Fall habe ich hinter die Zeile in Klammern die Hexadezimalwerte gesetzt.


Zurück zu Naturwissenschaften und mathematische Spielereien

Zurück zur Startseite

Kai Schröder, 30.5.2001