Ist das die kleinste Zuse der Welt?

Einleitung

Letztens habe ich einen Hewlett-Packard Taschenrechner HP-25 ersteigert. Der HP-25 ist der zweite programmierbare Taschenrechner von Hewlett-Packard und wurde im Jahre 1975 vorgestellt. Der erste war der HP-65. Das Faszinierende am HP-25 ist seine für die damalige Zeit geringe Größe, niemals vorher gab es ein programmierbares Gerät, welches so klein war, dass man es wirklich in die Hosentasche stecken konnte. Er ist also historisch gesehen sehr wertvoll. Er hat keinen Magnetkartenleser, wie der HP-65, und nervt damit auch nicht alle paar Jahre mit dem fälligen Austausch einer durch ausgasende Weichmacher klebrig gewordenen Andruckrolle. Und aus meiner Sicht benötige ich nicht unbedingt Magnetkarten, da ich nicht mehr ernsthaft mit dem Taschenrechner große Programme entwickele. Aber als Kulturgut und Analysieren und Verstehen der Anfänge des persönlichen Programmierens ist er ideal geeignet. Der nur 4 Jahre später erschienene HP-41C besaß zwar eine Fülle von zusätzlichen Fähigkeiten, aber keine davon ist nötig die grundsätzliche Arbeitsweise eines Computer zu verstehen.

Was macht den HP-25 so interessant?

Für mich vereint der HP-25 in einem vergleichsweise winzigen Gehäuse alle für einen Computer notwendigen Elemente und ist noch dazu bis heute sinnvoll verwendbar! Und gerade dadurch ist er für mich DAS Sinnbild für den Beginn einer neuen Ära, nämlich der der persönlichen Computer. Das haben später auch immer wieder andere Hersteller von ihren Geräten behauptet, aber aus meiner Sicht ermöglichten schon programmierbare Taschenrechner zum ersten Mal jedem Menschen den Kauf  eines Gerätes, mit dem sie in der Lage waren Lösungen für ihre individuellen mathematischen Probleme zu erstellen.

Mit seiner 7-Segment LED-Anzeige als Ausgabe, einer integrierten Tastatur als Eingabe (damals noch nicht selbstverständlich für, siehe Altair 8800), einem binär arbeitendem Gleitkommarechenwerk und der Fähigkeit Tastendrücke in einer Liste zu speichern und automatisch abarbeiten zu können, besaß er alles, was auch der erste funktionierende Computer der Welt, die Zuse Z3, schon hatte. Nur wiegt er anstatt etwas über einer Tonne nur etwa 160 Gramm und passt in eine Hand.

Klar, es gab 1976 schon Großcomputer und auch die ersten Mikrocomputer erschienen gerade am Horizont. Aber die Großcomputer waren für mich als Landkind trotz ihrer Größe unsichtbar, da sie in für mich unerreichbaren Universitäten oder großen Firmen standen, sie außerdem nicht für Jedefrau/Jedermann verfügbar waren, oder Rechenzeit auf ihnen einfach zu umständlich zu bekommen war. Und die ersten Mikrocomputer waren noch sehr teuer und außer zum Programmieren lernen, kaum für etwas Sinnvolles zu gebrauchen. Erst Visicalc auf dem Apple II sorgte für den richtigen Hype. In dieser Zeit, also von etwa 1975 bis 1985 waren programmierbare Taschenrechner ein wertvolles Instrument für zahlreiche Aufgaben. Erstmals wurde es möglich, dass zahllose mathematische Rechnungen, die bisher mehr oder weniger manuell durchgeführt werden mussten, automatisch ablaufen konnten.

Der für die Programmierung verwendete Mechanismus ist einer der einfachsten die ich kenne und somit sehr gut geeignet jemandem die grundsätzliche Arbeitsweise eines Computers zu zeigen oder zu erklären. Und meiner Meinung ist die Art der Programmierung des HP-25 einer Zuse Z3 oder Z4 sehr ähnlich, wenn nicht sogar identisch! Damit eignet sich der HP-25 sehr gut um interessierten Menschen zu zeigen wie eine Zuse Z3 oder Z4 funktioniert hat. Wer versucht einen Algorithmus auf dem HP-25 zu programmieren, muss ganz ähnlich denken, wie das auch bei der Zuse Z3 oder Z4 gewesen sein muss.

Wahrscheinlich ist das heute nicht immer so einfach nachzuvollziehen. Denn der Bedarf für derartige Rechnungen ist heute nicht mehr in diesem Maße vorhanden. Für Aufgaben, die damals solche Rechnungen erforderten, zum Beispiel in der Architektur, gibt es heute fast immer Anwendungen oder Apps wie zum Beispiel ein CAD-System, die es ermöglichen mit Hilfe eines Zeigeinstruments wie einer Maus interaktiv in kurzer Zeit die dafür notwendigen Baupläne zu erstellen, ohne dass ich dabei auch nur einmal irgendetwas rechnen muss. Alle Berechnungen werden heutzutage vom CAD-System quasi nebenbei ausgeführt, da es alle notwendigen Formeln und Rechenwege kennt und automatisch ausführt.

Aber dieser kleine Taschenrechner ist die Essenz der damaligen, und in gewisser Weise auch noch heutigen, Technologie. So viel damalige High-Tech in einem so kleinem Gehäuse gab es vorher nicht. Denn alle binär arbeitenden Computer basieren im Grunde auf Logikgattern, die im Laufe der Jahrzehnte mit verschiedenen Bauteilen realisiert wurden. Von kunstvoll verschachtelten Blechen in der Zuse Z1, über ständig ausfallende Röhren im ENIAC, gelegentlich ausfallenden Telefonrelais in der Zuse Z3, schnellen und zuverlässig arbeitenden Transistoren im HP 9100, bis eben zu Integrierten Schaltungen aus Tausenden von Transistoren, im HP-25. Bei jeder neuen Entwicklung wurden die Schaltelemente schneller, zuverlässiger und kleiner. Auch die LED-Anzeige war damals Stand der Technik. Und mit Integrierten Chips arbeiten wir auch heute noch, nur besitzen sie jetzt anstatt einiger Tausend, Milliarden von Transistoren. Es ist bemerkenswert, das auch heutige Computer noch immer mit einem binär arbeitenden Gleitkommarechenwerk rechnen, wie es schon die Z1 (!) tat. Wenn Sie gerade einmal funktionierte. Und auch heutige Computer basieren immer noch auf Transistoren in Integrierten Schaltungen, wie sie schon der HP-25 besaß. Um also jemanden zu erklären, wie die Hardware eines Computers funktioniert und wie man darauf Software entwickeln kann, benötige ich nichts weiter als einen HP-25!

Der 2 Jahre zuvor erschienene HP-65 war zwar grundsätzlich etwas interessanter, da dieser erste programmierbare Taschenrechner von Hewlett-Packard etwas mehr Speicher, 5 spezielle Tasten zum Starten von Programmen und noch dazu einen Magnetkartenleser besaß und darum für etwas aufwendigere Aufgaben eingesetzt werden konnte, aber er besaß keine Rückschritttaste für das Editieren eingegebenen Programmcodes und ein nicht ganz so effizientes Speichermodell für einzelne Tastendrücke. Der erste programmierbare Taschenrechner war er vermutlich auch nicht, denn dieser Triumph gebührt dem Compucorp 324G, der allerdings keine bedingte Verzweigung besaß und auch nicht so klein war. Und Magnetkartenleser haben heutzutage nahezu immer das Problem, das sie nicht mehr funktionieren. Meistens haben sich die Antriebsrollen aus Gummi aufgelöst und müssen ausgetauscht werden. Was vermutlich alle paar Jahre wieder erfolgen muss. Beim HP-25 und HP-29C muss ich mich darum nicht kümmern.

Was kann man mit so einem Taschenrechner heute noch machen?

Zum einen ist das einer der ersten technisch-wissenschaftlichen Taschenrechner gewesen. Also ein Taschenrechner mit transzendenten Funktionen wie zum Beispiel ‚sin‘, ‚cos‘, ‚tan‘, ‚ln’ oder ‚log’. Er kann so zum Beispiel im Schulunterricht verwendet werden und wird dort bestimmt 90% der Anforderungen abdecken, da in deutschen Schulen meist sowieso nur ‚kastrierte’ Taschenrechner verwendet werden dürfen. Aber das ist ein anderes Thema. Allerdings werden die meisten Menschen mit dem HP-25 erst einmal nicht zurecht kommen, da er zur Eingabe von Rechnungen eine Eingabelogik namens UPN verwendet.

Zum anderen kann man damit auf elementarer Ebene Programmieren lernen. Man lernt zwar nichts über Funktionen, Objektorientierung oder parallele Programmierung, aber allemal einen Algorithmus zu formulieren. Und das ist der Kern eines jeglichen Programms. Ich kann lernen, wie allein die Reihenfolge der Ausführung von ein paar Rechenanweisungen von entscheidender Bedeutung für das Ergebnis sein kann, wie Schleifen und Bedingungen zu programmieren sind oder ob das Problem es erfordert einen Vergleichstest vor oder nach der Ausführung einer Schleife zu machen. Und im Falle von programmierbaren Taschenrechnern (z.B. mein PR-56 D-NC), die nur einen einzigen Vergleichsbefehl besitzen, wie ich durch geschicktes Zerlegen von beliebigen Vergleichen in einzelne Abschnitte, diese auch mit nur einem einzigen Vergleichsbefehl prüfen kann. Das hat dann was von der Programmierung in Maschinensprache und wer das alles drauf hat, der ist sicherlich gar nicht so schlecht für eine Karriere als Programmierer oder Informatiker gerüstet.

Und dazu ist weder Visual Studio noch Eclipse notwendig. Einfach einmal kurz den Schalter auf ‚PRGM‘ geschoben und schon bin ich mitten im Code!

Wer jetzt sagt, dass es diese Taschenrechner ja gar nicht mehr gibt oder sie sehr teuer sind, hat die Rechnung ohne die zahllosen Emulatoren gemacht, die unter Windows, Android und auf dem iPhone verfügbar sind. Wer heutzutage noch einen nativen programmierbaren Taschenrechner kaufen möchte, der wird bei Swissmicros fündig. Wer vorab über den DM42 lesen möchte, wird hier fündig.

Wer sich einmal ausprobieren möchte, sollte versuchen den euklidischen Algorithmus zur Ermittlung des GGT’s auf einem HP-25 zu implementieren. Wer nach fertigen Lösungen dafür sucht, sei auf diesen Thread im HP Forum verwiesen, in dem ihr auch eine Lösung von mir findet. Wer dort ein bisschen quer liest, kann auch entdecken, wie die Suche nach dem kürzesten Lösungsweg noch heute für intelligente Anregung sorgt.

Die bedingte Verzweigung

Ich unterscheide bei Computern, ob sie eine bedingte Verzweigung in ihrem Befehlssatz haben oder nicht. Es ist nur ein einziger Befehl und doch macht er einen Riesenunterschied! Für mich sind nur programmierbare Taschenrechner mit mindestens einer bedingten Verzweigung – und sei sie auch noch so primitiv (Test auf negative Zahlen) – relevant. Stichwort ‚Turing vollständig‘. Geräte ohne finde ich sterbenslangweilig. Ganz nebenbei: Die Zuse Z3 hatte keine! Die finde ich allerdings aus historischen Gründen interessant und der Nachfolger, die Z4, hatte eine! In meinem Artikel zum SwissMicros DM42 bin ich auf diese Thematik etwas intensiver eingegangen.

Ohne eine Möglichkeit, bedingte Anweisungen zu erstellen, wäre der Taschenrechner nicht in der Lage, als turing-vollständiges System zu funktionieren. Die Fähigkeit, Entscheidungen auf der Grundlage bestimmter Bedingungen zu treffen und dann verschiedene Operationen je nach Ausgang dieser Entscheidungen durchzuführen, ist ein Schlüsselmerkmal der Turing-Vollständigkeit. Dies wird oft durch die Verwendung von „if“-Anweisungen oder, wie in meinem Beispiel, einer Vergleichsoperation wie ‚x < 0‘ in Kombination mit einem bedingten Sprungbefehl wie „Goto“ erreicht.

Ohne diese Möglichkeit wäre der Taschenrechner lediglich in der Lage, eine feste Sequenz von Befehlen auszuführen, ohne auf bestimmte Zustände oder Bedingungen reagieren zu können. Dies würde seine Programmiermöglichkeiten erheblich einschränken und ihn daran hindern, als turing-vollständiges System zu fungieren.

In der Praxis würde dies bedeuten, dass der Taschenrechner viele Arten von Berechnungen oder Algorithmen, die eine bedingte Logik erfordern, nicht ausführen könnte.

Wie man mit dem HP-25 rechnet

Ein zentrales Element eines jeden Computers und auch des HP-25 sind Register. Das sind Speicherplätze für Zahlenwerte im Inneren des Taschenrechners. Ihr könnt es Euch vorstellen wie die Zeilen auf einem Platt Papier, auf dem Ihr eine Zahl schreibt. In diesem Fall ist der Platz auf dem Papier, auf dem die Zahl steht der Speicherplatz. Die Zahl ist dort gespeichert, Ihr könnt sie immer wieder lesen oder für neue Berechnungen an andere Stellen kopieren bzw. verwenden, bis Ihr das Blatt Papier in den Mülleimer werft. Macht Ihr eine schriftliche Addition, so werdet Ihr wahrscheinlich zwei Zahlen untereinander schreiben, damit Ihr die einzelnen Ziffern – wie in der Schule gelernt -    zusammen addiert und das Ergebnis in eine dritte Zeile darunter schreibt.

Der HP-25 hat kein Papier und kann auch keines verwenden. In einem Taschenrechner ist ein Register eine Schaltung aus mehreren Flipflops, die mit Hilfe von Strom eine Zahl in ihrer binären (z.B.: 10011011 = 155) Darstellung festhalten kann, bis sie wieder geändert wird. Davon hat der HP-25 mehrere. Er hat auch noch andere Speicherplätze, die durch eine Nummer angesprochen werden können. Wenn der HP-25 zum Beispiel eine Addition durchführt, so benötigt er die beiden Zahlen in 2 Registern. Dann kann er die beiden Zahlen Bit für Bit addieren und das Ergebnis in einem speziellen Register mit dem Namen ‘Akkumulator’ ablegen.

Der HP-25 kann keine algebraischen Ausdrücke verarbeiten. Möchte ich mit ihm einen mathematischen Ausdruck berechnen, so muss ich selbst den Ausdruck so zerlegen, dass ich ihn mit dem HP-25 berechnen kann. Dazu besitzt der HP-25 zwei Register mit den Bezeichnungen X und Y. Die 4 Grundrechenarten Addition, Subtraktion, Multiplikation und Division beziehen sich beim HP-25 immer auf diese beiden Register. Darum muss ich für eine Addition zuerst die beiden Operanden eingeben und anschließend die Taste [+] drücken, damit die beiden Werte addiert werden. Das Ergebnis wird direkt in einem Register mit der Bezeichnung Akkumulator erzeugt und anschließend in das Register X kopiert und genau dieses eine Register wird in der Anzeige dargestellt. Das Y Register wird wieder gelöscht. Der Akkumulator ist für den Anwender des HP-25 unsichtbar!

Diese Art zu Rechnen nennt sich Umgekehrt Polnische Notation (UPN). Warum sich jemand extra diese Bezeichnung ausgedacht hat weiß ich nicht, denn eigentlich ist es einfach der Weg wie man mit ersten Mikroprozessoren auf Maschinenebene gearbeitet hat. Dort wurde 2 Zahlen in Registern gespeichert und anschließend mit einer der grundlegenden Rechenoperation verarbeitet. Möchte ich auf diesem Weg den Wert einer Funktion ausrechnen, die aus mehreren Rechenoperationen besteht, so muss ich die Funktion von Hand in einzelne Rechenschritte in der richtigen Reihenfolge verwandeln und Schritt für Schritt ausrechnen. Ich muss also selbst die Punkt-vor-Strich und Klammer Regeln beachten und kann mich darum nicht immer linear von links nach rechts durch den Funktionsausdruck arbeiten.

Das ist genau so wie in der Urzeit der Computertechnologie und darum wie bei der Z3!

Die Leute bei HP haben versucht dem Anwender bei der Berechnung längerer Ausdrücke etwas entgegen zu kommen und darum verfügt der HP-25 über zwei weitere Registern (T und Z genannt) die zusammen mit X und Y in einem Stack angeordnet sind. Dies ermöglicht es immer dann, wenn beim linearen Abarbeiten Werte zwischengespeichert werden müssen, diese einzutippen und mit der [Enter]-Taste im Stack nach oben zu schieben. Sobald aber 2 Werte durch eine Rechenoperation zu einem Wert verknüpft werden und dadurch das Y Register wieder frei wird, werden alle sich im Stack darüber befindlichen Werte im Stack um einen Platz nach unten verschoben. Mit diesen Möglichkeiten lässt sich, nach ein wenig Übung, ganz passabel schnell rechnen.   

Funktionen, die sich nur auf einen Operanden beziehen, wie Quadratwurzel oder Sinus bestimmen, wirken sich nur auf das Register X aus. Beim Drücken der zugehörigen Taste wird der Wert aus dem Register X zur Berechnung genommen und der berechnete Wert anschließend wieder im Register X gespeichert.

Vergleich zwischen Zuse Z3 und Z4 mit dem HP-25

Möchte ich heutzutage jemandem erklären, was Programmieren eigentlich ist, kann ich das mit dem HP-25 sehr leicht zeigen. Einfach den rechten Schalter unter dem Display von ‚RUN‘ auf ‚PRGM‘ schieben und schon wird jeder Tastendruck für den späteren automatischen Ablauf gespeichert.

Um die Z3 oder die Z4 programmieren zu können musste ein Streifen aus Filmmaterial mit Löchern versehen werden – also ein Lochstreifen. Jeder Befehl wurde in einer Reihe mit 8 Löchern codiert. Bei der Z3 wurde dies mit einem externen Locher gemacht, während die Z4 schon eine dafür vorgesehene Tastatur besaß.

Beim HP-25 geht das viel einfacher! Anstatt Filmmaterial besitzt er schon einen eingebauten Speicher, der sich eingegebene Tastendrücke merken kann. Angenommen die 8 Löcher des Lochstreifen währen einzelne Bits, so kann ich mir sogar vorstellen wie sie im HP-25 als Byte im Arbeitsspeicher gespeichert sind.

Und da die Tasten des HP-25 die Ziffern 0 – 9, einige mathematische Funktionen und ein paar Sondertasten sind, ist das fast genauso, wie wenn Zuse die Befehle mit einem Locher in einen Lochstreifen stanzt. Nur dass sie beim HP-25 in einem elektronischen Speicher landen, der immer wieder neu beschrieben werden kann. Übrigens hatte die Z3 an möglichen Funktionen nur die 4 Grundrechenarten und die Quadratwurzelberechnung. Da ist der HP-25 mit seinen zusätzlichen transzendentalen Funktionen noch ein ganzes Stückchen weiter. Habe ich ein kleines Programm eingegeben, stelle ich den Schalter wieder zurück auf ‚RUN‘, positioniere den Programmzeiger mit ‚GTO 01‘ auf den Anfang des Programms und starte es mit einem Druck auf die ‚R/S‘-Taste.

Die Maschinensprache der Z3 umfasste neun Befehle. Bei einem Takt von 5.3 Hz benötigt jeder Zyklus 0.2 Sekunden. Die nachfolgende Tabelle ist aus der Wikipedia und ich habe sie um einige Spalten ergänzt um den Vergleich zwischen der Z3 und dem HP25 aufzuzeigen. Die Register R1 und R2 der Z3 sind mit den Registern X und Y des HP-25 vergleichbar:

Befehl

Beschreibung

Dauer (Zyklen)

Dauer in Sekunden

Äquivalenter Befehl beim HP-25

Pr z

Speicherzelle z in Register R1/R2 laden

1

0.2

RCL z – kopiert Inhalt des Speicherregisters z in das X-Register

Ps z

R1 in Speicherzelle z schreiben

0–1

0 – 0.2

STO z – kopiert Inhalt des X-Registers in    Speicherregister z

La

Addition: R1 ← R1 + R2

3

0.6

X ←X + Y

Ls

Subtraktion: R1 ← R1 – R2

4–5

0.8 – 1

X ←X – Y

Lm

Multiplikation: R1 ← R1 × R2

16

3.2

X ←X * Y

Li

Division: R1 ← R1 / R2

18

3.6

X ←X / Y

Lw

Quadratwurzel: R1 ← √(R1)

20

4

X ←√(X)

Lu

Dezimalzahl einlesen in R1/R2

9–41

1.8 – 8.2

Dezimalzahl eintippen und [Enter]

Ld

R1 als Dezimalzahl ausgeben

9–41

1.8 – 8.2

Das ist beim HP-25 nicht notwendig, da er das automatisch macht.

Ein konkretes Beispiel

Bleiben wir einmal kurz bei der Z3. Wie schon geschrieben, besaß die Z3 einen Lochstreifen aus Filmmaterial. Dieser wurde in der Z3 auch ganz ähnlich wie ein Filmstreifen in einem Filmprojektor abgespielt. Aber vermutlich darf ich heutzutage die Funktion eines Filmstreifens nicht mehr voraus setzen. Falls es doch jemand interessiert: Es handelt sich um einen sehr langen Streifen aus teilweise transparentem Zelluloid, auf dem Abertausende von kleinen Bildern sind, die, wenn man sie schnell genug (24 Mal pro Sekunde) an einer hellen Lampe vorbei führt, auf einer Leinwand einen Film reproduzieren.

Es lässt sich aber auch einfacher erklären. Am einfachsten ist immer wieder das Beispiel mit einem Rezept. Ein Rezept ist eine Liste mit Anweisungen die, in der richtigen Reihenfolge ausgeführt, ein leckeres Gericht erzeugen. Ein Programm ist nichts anderes als eben eine solche Liste, nur enthält sie anstatt Kochanweisungen im Falle von der Z3 halt Rechenanweisungen. Und so wie das Essen nicht schmecken wird, wenn das Rezept schlecht verfasst oder Anweisungen in der falschen Reihenfolge enthält, wird ein Programm nicht die gewünschten Ergebnisse produzieren, wenn die Anweisungen die falschen sind oder die Reihenfolge nicht stimmt. Bei Computern heißt es nur anders: Die Liste ist ein Programm und derjenige der sie erstellt ist ein Programmierer. Und es ist die Kunst des Programmierens, die Liste so zu erstellen, dass am Ende das Richtige dabei heraus kommt.

Bei der Z4 standen die Anweisungen auf dem eben erwähnten Lochstreifen und er heißt so, weil die Anweisungen in Form von vielen kleinen Löchern auf das Zelluloid gestanzt wurden.

Leider hat der HP-25 keinen Lochstreifen, denn das würde bestimmt nett anzusehen sein, wenn er so einen Lochstreifen per Motor durch sein Gehäuse ziehen würde. Stattdessen besitzt der HP-25 in seinem Gehäuse einen Speicher aus Transistoren und dort kann er Rechenanweisungen in einer Liste namens Programmspeicher ablegen. Des weiteren besitzt er einen Programmzeiger, das ist nichts anderes als eine Zahl, die angibt an welcher Stelle ich mich bei der Eingabe von Anweisungen in der Liste gerade befinde oder später, wenn der HP-25 das Programm automatisch ablaufen lässt, er sich gerade befindet.

Wie einfach das sein kann, zeige ich an nachfolgendem Beispiel auf. Angenommen ich möchte für die nächsten 10 Jahre jedes Jahr sehen, wie sich ein bestimmtes Anfangskapital vermehrt, wenn ich dafür einschließlich Zinseszinsen jedes Jahr 3% Zinsen bekäme, dann kann ich das mehr oder weniger mühsam ausrechnen, indem ich den Taschenrechner einschalte und 10 Mal hintereinander den gerade in der Anzeige stehenden Wert mit 1.03 multipliziere: [1], [.], [0], [3], [*]. Das sind für jedes Jahr 5 Tastendrücke, also insgesamt 50!

Ich kann aber auch ein kleines Programm für diese Aufgabe schreiben.

HP-25 einschalten, in der Anzeige erscheint ‚0.00‘.

Rechten Schalter von ‚RUN‘ auf ‚PRGM‘ schieben, in der Anzeige erscheinen 2 Nullen. Sie zeigen die aktuelle Position, also den Programmzeiger. Jetzt die in Tabelle links stehenden Tasten nacheinander drücken:

Taste

Anzeige

Programmzeiger

Anzeige

Programmcode

Erklärung

 

00

 

Es ist noch kein Programm eingegeben worden, der Programmzeiger zeigt auf 00.

[1]

01

01

Die Taste [1] wurde gedrückt, der Programmzeiger um 1 erhöht und der Code der Taste [1] wird angezeigt.

[. ]

02

73

Die Punkttaste wurde gedrückt, der Programmzeiger um 1 erhöht und der Code der Taste [. ] wird angezeigt.

[0]

03

00

Die Taste [0] wurde gedrückt, der Programmzeiger um 1 erhöht und der Code der Taste [0] wird angezeigt.

[3]

04

03

Die Taste [3] wurde gedrückt, der Programmzeiger um 1 erhöht und der Code der Taste [3] wird angezeigt.

[*]

05

61

Die Taste für die Multiplikation wurde gedrückt, der Programmzeiger um 1 erhöht und der Code der Taste [*] wird angezeigt.

[R/S]

06

74

Die Taste [R/S] wurde gedrückt, der Programmzeiger um 1 erhöht und der Code der Taste [R/S] wird angezeigt. Diese Taste sorgt beim Ablauf dafür, dass der Rechner den Ablauf stoppt und das bisher in der Anzeige stehenden Ergebnis anzeigt. Wenn ich anschließend genau diese Taste drücke, läuft das Programm weiter.

[GTO]

 

13

Die Taste [GTO] wurde gedrückt, erwartet aber noch weitere Tasten und zeigt darum erst einmal keinen Tastencode an. Diese Taste sorgt dafür, dass das Programm an dieser Stelle nicht einfach die nächste Position abarbeitet, sondern an einer beliebigen anderen, noch einzutippenden Position weiter arbeitet.

[0]

 

13      0

Die Taste [0] wurde gedrückt, diese reicht aber immer noch nicht aus um eine gültigen Wert für einen Sprung des Programmzeigers zu ergeben und darum wird immer noch kein Code angezeigt.

[1]

07

13 01

Die Taste [1] wurde gedrückt. 0 und 1 ergeben eine gültige Position für den Programmzeiger und darum wird erst jetzt der passende Code angezeigt.

Damit ist die Programmeingabe abgeschlossen und der HP-25 kann wieder in den normalen Arbeitsmodus geschaltet werden. Also den Schalter von ‚PRGM‘ auf ‚RUN‘ schieben. Wieder erscheint 0.00 in der Anzeige. Nun könnte ich das Programm eigentlich starten, aber es fehlt noch etwas sehr Wichtiges: Der Programmzeiger ist immer noch auf der Position 7! Würde ich das Programm jetzt starten, dann würde der HP-25 alle Befehle abarbeiten die nach 07 kommen. Aber da sind gar keine! Darum würde erst einmal nichts passieren. Aus diesem Grund muss ich jetzt von Hand den Programmzeiger auf die Position 01 stellen. Ich muss die Tasten [GTO], [0] und [1] drücken. Für Insider: Wenn der Programmspeicher nur leere Befehle (Code 13 00) enthält, kann man es auch lassen! Dann läuft der Programmzeiger über die leeren Befehle ohne etwas zu machen und fängt am Ende einfach wieder bei Position 01 an!

Jetzt gebe ich einen beliebigen Wert für das Anfangskapital ein. Zum Beispiel 5000 [Enter] und drücke anschließend auf die Taste [R/S]. In der Anzeige erscheint 5150. Jetzt einfach noch einmal auf die Taste [R/S] drücken und es erscheint 5304.50. Wenn Sie jetzt noch weitere 8 Male auf die Taste [R/S] drücken erscheint jedes Mal Ihr Anfangskapital mit den bis zu diesem Jahr aufgelaufenen Zinsen! Es ist mir klar, das ich das auch anders machen kann, aber das Beispiel zeigt sehr schön, wie ein Programm sich wiederholende Berechnungen vereinfachen und viele Tastendrücke einsparen kann.

Auf dieser Seite können Sie einen Emulator des HP-25 herunterladen und das Beispiel und natürlich auch Ihre eigenen Versuche und Ideen, ausprobieren.

Aus dem Gezeigten kann ich erkennen, das die für Probleme möglichen Lösungswege und Programme des HP-25 auch auf einer Zuse Z3 oder Z4 einsetzbar sind.

Zur Vollständigkeit: Im gleichen Gehäuse gab es später noch einen HP-25C, der sich ein eingegebenes Programm auch nach dem Ausschalten merken konnte und einen HP-29C, der wesentlich verbessert war. Er besaß mit 98 Programmschritten doppelt so viel Speicherplatz für Programme, mehr Register, Befehle zur Schleifensteuerung (ISZ und DSZ), die Möglichkeit mit Unterprogrammen (drei Ebenen) zu arbeiten, Labels, so dass es möglich war in einem schon im Programmspeicher befindlichen Programm einzelne Befehle einzufügen oder zu löschen ohne dass dabei die Sprungadressen angepasst werden mussten (Eine Riesenerleichterung) und die Möglichkeit durch indirekte Adressierung programmgesteuert verschiedene Register anzusprechen.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert