Die schlechtesten Programmiermöglichkeiten meines Lebens - und ihre Verbesserung
Um zu verstehen, wie viel besser der HP-42S war und der DM42 ist, erkläre ich nachfolgend, wie schwierig die Programmierung mit meinem ersten programmierbaren Taschenrechner war, dem Privileg PR 56 D-NC.
Der PR 56 D-NC hatte einen nur 72 Schritte großen Programmspeicher, ungefähr vergleichbar mit 72 Bytes. Dazu gab es noch zehn Register für Zwischenergebnisse. Wahrlich nicht viel, um ein Programm zu schreiben. Für ein paar einfache Formeln reichte es, aber für größere Programme war es viel zu wenig.
Keinerlei Programmierungskomfort
Er hatte keinerlei Möglichkeit, mit Symbolen zu arbeiten. Weder mit sprechenden Variablennamen noch mit Programmmarken (Labels), auf die man mit GOTO hätte verzweigen können. Während die fehlenden Variablennamen bei nur zehn Registern noch tolerierbar waren, bedeutete das direkte Adressieren von Programmschritten (Sprungadresse) ein Riesenproblem: Fast jedes Mal, wenn das Programm einen Fehler beinhaltete, der das Einfügen oder Löschen von Befehlen bedeutete, also eigentlich immer, mussten alle GOTO-Anweisungen angepasst werden. Das bedeutete Arbeit und neue Fehlerquellen.
Außerdem konnten neue Befehle nicht einfach eingefügt werden. Sie überschrieben schon vorhandenen Programmcode! Praktisch mussten komplette Programmteile neu eingegeben werden. Dieser Nachteil findet sich auch bei der Programmierung eines alten Mikroprozessors nur über den Maschinencode. Ein Assembler hat das natürlich vermieden.
Bedingte Verzweigung
Der SKP(-)-Befehl war wie geschaffen für Schleifen, bei denen man so lange etwas machen wollte, bis ein bestimmter Wert < 0 war. Aber alles andere wurde zur Qual. Es gab kein X=0?, X<>0?, X<0?, X>0?, X<=0?, X>=0? und das alles noch einmal für X ? Y?. Wollte ich mit SKP(-) prüfen, ob eine in der Anzeige befindliche Zahl ein bestimmter Wert ist, musste ich diesen Wert, um 1 erhöht, erst vom Anzeigewert subtrahieren und prüfen, ob er negativ ist. Falls ja, musste ich den Wert wieder um 1 erhöhen und noch einmal mit SKP(-) prüfen, ob er positiv ist. Nur dann war der Wert identisch. Im Programm sieht das dann wie folgt aus.
Programm für den Privileg PR 56 D-NC
00 - 01 6 // 5 + 1 mehr, damit der Test negativ wird wenn der Wert stimmen könnte 02 = 03 SKP(-) // Wenn jetzt negativ, dann Sprung über das GOTO und nächster Test 04 GOTO 05 1 06 4 07 + // 1 dazu zählen 08 1 09 = 10 SKP(-) // Wenn jetzt positiv, dann Sprung zu 'Wert ist gleich 5' 11 GOTO 12 2 13 1 14 7 // Ab hier der Code für 'Wert ist ungleich 5' 15 7 16 7 17 R/S 18 GOTO 19 0 20 0 21 9 // Ab hier der Code für 'Wert ist gleich 5' 22 9 23 9 24 R/S 25 GOTO 26 0 27 0
Für diesen eigentlich simplen Vergleich habe ich also ungefähr zehn Schritte zusätzlich benötigt. Die gehen dann von den insgesamt nur 72 Schritten ab, die mir der Taschenrechner überhaupt für ein Programm zur Verfügung stellt. Entsprechend glücklich war ich, als ich den ersten Taschenrechner mit einem Befehl wie X=Y? bekommen habe! Und der absolute Wahnsinn war dann natürlich Basic, wo ich die Bedingungen mit IF ... THEN ... einfach so aufschreiben konnte, wie ich sie mir dachte.
Aber es geht nicht nur um den begrenzten Speicher. Sondern auch darum, dass es mich jede Menge Gehirnschmalz gekostet hat, die Bedingungen korrekt zu definieren.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
| Ein Programm schreiben mit dem DM42 | Was kann der DM42 mehr? |










Weil der HP49 ein CAS Rechner, und damit in den wenigsten Fällen in Schule und Studium...
Raspberry Pie: Linux und damit im Prinzip ja die einfachste Möglichkeit. Man kann jede...
Ich habe angefangen mit dem CASIO FX-501P oder FX-502P. Ich hatte diesen Adapter mit dem...
Und ihn programmiert, um die Fakultät einer Zahl mit allen Stellen auszurechnen...