Wolfgang Pavel: Zuse Z22: Dokumentation und Simulation
Alle Befehle der Z22


Legende:

  • Intern: Schreibweise entspricht der Darstellung in Speichern oder Registern (dort binär); hier noch in »lesbarer« Form; Befehl nur aus Elementarbefehlen zusammengesetzt.
  • Extern: für die Programmierung vereinfachte Schreibweise
  • s: Schnellspeicheradresse (0≤s≤31)
  • t: Trommelspeicheradresse (0≤t≤8191)
  • m: Schnellspeicheradresse (m≤31) oder Trommelspeicheradresse (m≥32)
  • n: natürliche Zahl, Bereich abhängig vom Befehl
  • a: Akkumulator
  • b: Befehlsregister
  • c: Befehlszählregister
  • ...›: Inhalt von ...
  • ...n : n-tes Bit des Inhalts von ...
  • ...t : Trommeladressteil (unterste 13 Bits) des Inhalts von ...

Transport- und elementare Rechenbefehle.

Transport kann vom Akku zu Schnellspeicherzellen, Akku zu Trommelspeicherzellen und umgekehrt, sowie von Trommelspeicherzellen zu Schnellspeicherzellen erfolgen.
Elementare Rechenoperationen sind Addition, Subtraktion, Intersektion (logisches UND) und Disjunktion (logisches ODER) nur für ganze Zahlen. (Gleitkommaoperationen werden über Grundprogramm-Unterprogramme gemacht.)

ExternInternWirkungBemerkungen
Am, m≤31
, m≥32
‹a› + ‹m›→ aAddiere
Sm, m≤31
, m≥32
‹a› − ‹m›→ aSubtrahiere
Bm, m≤31
, m≥32
‹m›→ aBringe
NSm, m≤31
, m≥32
−‹m›→ a 
Im, m≤31
, m≥32
‹m› ^ ‹a›→ aIntersektion, UND
Is+t, m≤31
, m≥32
‹s› v ‹a›→ aDisjunktion, ODER
Um, m≤31
, m≥32
‹a›→ mUmspeichern; ‹a›→ a
Tm, m≤31
, m≥32
‹a›→ m ; 0→ aTransportiere
Us+tUs+t‹a›→ s,t‹a›→ a
Ts+tNUs+t‹a›→ s,t ; 0→ a 
As+tAs+t‹s› + ‹t›→ s‹a›→ a
Ss+tASs+t‹s› − ‹t›→ s‹a›→ a
Bs+tNAs+t‹t›→ s‹a›→ a
NSs+tNASs+t−‹t›→ s‹a›→ a

Befehle mit Ganzzahlen.

Bei diesen Befehlen werden die untersten 19 Bits, das sind Trommelspeicheradresse, Schnellspeicheradresse und das Befehlsbit V zusammen als natürliche Zahl (n) interpretiert. Diese kann damit im Bereich 0 ≤ n ≤ 524287 liegen. Bestimmend für diese Befehle ist das Befehlsbit C (wie »Cahl«).

ExternInternWirkungBemerkungen
CAnCAn‹a› + n→ aAddiere Zahl
CSnCASn‹a› − n→ aSubtrahiere Zahl
CBnCNAnn→ aBringe Zahl
CNSnCNASn−n→ a 

Sprungbefehle.

Mit einem Sprungbefehl wird der normale fortlaufende Befehlsablauf unterbrochen und zu einer im Sprungbefehl angegebenen Adresse »gesprungen«. Unter dieser Adresse sollte wieder ein Befehl, normalerweise der Anfang eines Programmstücks liegen.

Beim normalen Befehlsablauf wechseln automatisch immer ein Befehl des Programms (nicht Sprungbefehl) und ein Sprungbefehl (aus dem Befehlszählregister kommend) ab.

Oft ist ein Sprungbefehl mit einer Bedingung versehen (siehe eigene Tabelle), was programmtechnisch eine Verzweigung bedeutet: Entweder wird – bei erfüllter Bedinung – zu einem anderen Programmteil gesprungen, oder – bei unerfüllter Bedingung – es geht direkt hinter dem nicht ausgeführten Sprungbefehl weiter.

In externer Schreibweise ist der Sprungbefehl E . An der internen Schreibweise erkennt man, dass es kein eigenes Befehlsbit dafür gibt; der Sprungbefehl ist intern durch das Fehlen von A und U definiert.
ExternInternWirkungBemerkungen
Em, m≤31
, m≥32
‹m›→ b ; Em+1'→ cSprungbefehl
NEm, m≤31
, m≥32
0→ a ; ‹m›→ b ; Em+1'→ cSprung mit Nullsetzen
Es+ts+t‹s› v ‹t›→ b ; Es+[t+1']→ cselten
Fm, m≤31
, m≥32
‹m›→ b ; ‹c›→ 5 ; Em+1'→ cUnterprogrammsprung
NFm, m≤31
, m≥32
‹m›→ b ; 0→ a; ‹c›→ 5 ; Em+1'→ cUnterprogrammsprung
mit Nullsetzen

Das Besondere an dem F-Befehl ist, dass zwar wie beim E-Befehl zu einem anderen Programmteil (Unterprogramm) gesprungen wird, aber der im Befehlszählregister stehende Befehl in den Schnellspeicher 5 gebracht wird; dieser Befehl ist aber der Sprungbefehl auf den eigentlich nächsten Befehl, wenn nicht weggesprungen würde. Wird später in dem Unterprogramm der Befehl E5 gegeben, so führt dies dazu, dass der dort aufgehobene Sprungbefehl ausgeführt und damit hinter die verlassene Stelle zurückgekehrt wird.


Zusatzbefehle.

Einige Elementarbefehle können sinnvoll fast jedem anderen Befehl hinzugefügt werden.

Einige dieser Befehle, wenn sie einem Sprungbefehl hinzugefügt werden, bleiben sie beim Kreislauf über das Befehlszählregister erhalten; dann werden sie automatisch bei jedem Zwischenschritt erneut wirksam, ohne explizit in einem Befehl enthalten zu sein. Erst ein weiterer Sprungbefehl ohne den Zusatz kann das beenden.
BefehlWirkungbei Übernahme ins
Befehlszählregister
Bemerkung
N0→ awird gelöschtje nach Befehl vor oder nach dem Befehl ... wirksam,
deshalb schon bei den einzelnen Befehlen mit erklärt
H1→ 338bleibt erhaltenkann anschließend mit Bedingung Y abgefragt werden
ZStop, bevor Befehl
ausgeführt wird
wird gelöschtDie Maschine stoppt VOR der Ausführung des Befehls.
Mit »WEITER« oder »START« auf dem Bedienungspult
wird der Befehl ausgeführt (und bei START die weiteren)
LL, R, VVerschieben von
‹a› und evtl. ‹3›
bleiben erhaltenSchiebefehle, in einer eigenen Tabelle erklärt
PP, QQ, P, Q, Ydamit versehener Befehl
wird nur ausgeführt,
wenn bestimmte Bedingung
erfüllt ist
werden gelöschtBedingungsbefehle, in einer eigenen Tabelle erklärt

Schiebebefehle.

Schiebebefehle können den meisten Befehlen hinzugefügt werden. Zusätzlich zu der normalen Wirkung des dabeistehenden Befehls verschieben sie den Inhalt des Akkus und evtl. des Schnellspeichers 3 um 1 oder 2 Bits nach links oder rechts.

Ist der dabeistehende Befehl U, so wird er vor der Verschiebung wirksam; es wird also der unverschobene Inhalt des Akku gespeichert. Andere dabeistehendeBefehle werden nach der Verschiebung wirksam.

Schiebebefehle wirken nicht im ersten Schritt eine G-Befehls oder wenn der dabeistehende Befehl den Schalter W0 freischaltet.

Auf ganze Zahlen angewendet bewirkt ein Links-Schiebebefehl eine Multiplikation mit 2 oder 4, ein Rechts-Schiebebefehl eine abgerundete Division durch 2.

Meistens werden Schiebebefehle zur internen Bearbeitung von Informationsteilen eingesetzt.

ExternInternWirkung
R...R...‹a› um 1 Bit nach rechts verschieben; ‹a›38 geht verloren;
‹a›1 wird »nachgezogen«, dh. wird auf seinen Wert vor der Verschiebung gesetzt;
bewirkt bei Ganzzahlen eine abgerundete Division durch 2
L...LLR...‹a› um 1 Bit nach links verschieben; ‹a›1 geht verloren; 0→ ‹a›38
bewirkt bei Ganzzahlen eine Multiplikation mit 2
LL...LL...‹a› um 2 Bits nach links verschieben;
‹a›1 und ‹a›2 gehen verloren; 0→ ‹a›37 ; 0→ ‹a›38
bewirkt bei Ganzzahlen eine Multiplikation mit 4
RV...RV...‹a› (»linker Akku«) und ‹3› (»rechter Akku«) zusammen verkoppelt
um 1 Bit nach rechts verschieben; ‹3›38 geht verloren; ‹a›38→ ‹3›1
‹a›1 wird »nachgezogen«, dh. wird auf seinen Wert vor der Verschiebung gesetzt;
bewirkt bei einer doppellangen Ganzzahl in ‹a,3› eine abgerundete Division durch 2
LV...LLRV...‹a› (»linker Akku«) und ‹3› (»rechter Akku«) zusammen verkoppelt
um 1 Bit nach links verschieben; ‹a›1 geht verloren; ‹3›1→ ‹a›38 ; 0→ ‹3›38
bewirkt bei einer doppellgangen Ganzzahl in ‹a,3› eine Multiplikation mit 2

Der Befehl LLV..., also eine Verschiebung in Akku und Schnellspeicher 3 um 2 Bits, ist nicht erlaubt.


Adresssubstitutions-Befehle.

Sollen in einem mehrfach durchlaufenen Programmteil (Unterprogramm, Schleife) mit demselben Befehl nacheinander verschiedene Trommelspeicherzellen angesprochen werden, muss die Trommelspeicheradresse variabel sein. Diesem Zweck dienen die durch G gekennzeichneten Adresssubstitutions-Befehle (G-Befehle). G kann vielen Befehlen hinzugefügt werden.

Die eigentliche, immer wieder zu ändernde, Trommelspeicheradresse wird ihrerseits in eine Speicherzelle (Schnellspeicher oder Trommel) gelegt und dort von Fall zu Fall modifiziert. Der G-Befehl bestimmt in einem ersten Schritt daraus die eigentlich zu verwendende Trommelspeicheradresse und führt in einem zweiten Schritt den beistehenden Befehl mit dieser Trommelspeicheradresse aus.

Weil der G-Befehl einen Takt länger dauert als normale Befehle, ist es aus zeitlichen Gründen (hier nicht näher erläutert) notwendig, im Programmablauf eine Trommelspeicherzelle zu überspringen. Deshalb muss der Programmierer nach einem G-Befehl immer eine beliebige Information schreiben, die bei der Programmausführung automatisch übergangen wird.

Meist schreibt man einfach eine 0. Man kann allerdings auch irgendeine Konstante dort ablegen, die man irgendwo im Programm benutzt.
ExternInternWirkungBemerkungen
G...t, m≤31
, m≥32
‹c› + 1→ c ;
t* = ‹t›t ; ausführen: ...t*
Die Trommelspeicher-Variable liegt in einer Trommelspeicherzelle t;
sie bleibt durch den Befehl unverändert;
sie ist ggf. an anderer Stelle des Programms explizit zu modifizieren.
GK...s+n...GKs+n‹c› + 1→ c ;
t* = ( ‹s›+n )t ; ausführen: ...0+t*
Die Trommelspeicher-Variable liegt in einer Schnellspeicherzelle s;
sie wird nur für die Befehlsausführung um n erhöht; das heißt,
es wird auf eine um n weiter hinten liegende Trommelzelle zugegriffen;
die modifizierte Adresse wird aber nicht in s gespeichert;
‹s› bleibt unverändert.
CGK...s+nC...GKs+n‹c› + 1→ c ;
t* = ( ‹s›+n )t ; ‹s› + n→ s ;
ausführen: ...0+t*
Die Trommelspeicher-Variable liegt in einer Schnellspeicherzelle s;
sie wird um n erhöht; das heißt, es wird auf eine um n weiter hinten liegende Trommelzelle zugegriffen;
die modifizierte Adresse wird in s gespeichert, sodass der Befehl auf eine jedes weitere Mal um n weiter hinten liegende Trommelzelle zugreift.
Mit n=1, also dem Befehl CGK...s+1 , verarbeitet man aufeinander folgende Speicherzellen.
CG...s+nC...Gs+n‹c› + 1→ c ;
n* = ( ‹s›+n )t ; ‹s› + n→ s ;
ausführen: C...n*
Die Variable liegt in einer Schnellspeicherzelle s und wird um n erhöht und s damit modifiziert.
‹s› wird aber nicht als Adresse interpretiert, sondern als Zahl
Ausgeführt wird ein Ganzzahl-Befehl mit der Variablen.
Mit n=1, also dem Befehl CGs+1 , wird jedes Mal in der Schnellspeicherzelle s um 1 hochgezählt, ohne dass auf einen anderen Speicherinhalt zugegriffen wird.
Bedingte Befehle.

Jedem Befehl, nicht nur Sprungbefehlen, können ein oder mehrere der 5 Bedingungsbefehle hinzugefügt werden. Die Bedingugen betreffen den Inhalt von Akku, Schnellspeicher 2 oder Schnellspeicher 3; im Bedienungspult geben die Signallampen T2, T3, T4 und T40 Auskunft über die bedingungsrelevanten Inhalte. Vor der Befehlsausführung werden die betreffenden Bedingungen geprüft; nur wenn alle erfüllt sind, wird der Befehl ausgeführt, andernfalls wird der Befehl übergangen (logisches UND).

BefehlWirkungBedingung Bedingung im
Bedienungspult
PP...Befehl ... nur ausführen,
wenn Bedingung erfüllt ist;
sonst nur ‹c›→ b
‹a› ≥ 0T4 aus
QQ...‹a› < 0T4 ein
PPQQ...‹a› = 0T40 aus
PQQQ...‹a›1 ≠ ‹a›2,
dh. ‹a› ist Befehl oder Text
P...‹2› ≥ 0T2 aus
Q...‹2› < 0T2 ein
Y...‹3›38 = 1,
d.h. ‹3› ist ungerade
T3 ein

Wiederholungsbefehle.
Die klassische Wiederholung von Programmteilen in einer Programmschleife wird mit Hilfe eines bedingten Sprungbefehls am Ende der Schleife zum Anfang der Schleife realisiert: Solange die Bedingung erfüllt ist, wird die Schleife wiederholt; bei nicht erfüllter Bedingung geht es mit dem nächsten Befehl nach der Schleife weiter.

Um einen einzelnen Befehl mehrmals hintereinander auszuführen, gibt es zwei Möglichkeiten:

ExternInternBeschreibung
Es−nEK(s−1)+(8192−t) Wirkung: Im Schnellspeicher (s−1) steht ein Befehl; dieser wird n-mal ausgeführt.
Im Schnellspeicher (s) muss ein Sprungbefehl zurück ins Programm stehen.
Erklärung: Der Befehl EK(s−1)... holt den Befehl aus dem Schnellspeicher (s−1) ins Befehlsregister, wo er ausgeführt wird; die Trommelspeicheradresse ... spielt wegen K dabei keine Rolle.
Bei jeder dieser Ausführungen wird die Trommelspeicheradresse aber über das Befehlszählregister um 1 erhöht.
Sobald die Trommelspeicheradresse 8192 erreicht, läuft der Trommeladressteil über, das heißt, er wird zu Null und der Übertrag wird als 1 zur Schnellspeicheradresse addiert.
Damit wird als nächstes der Befehl EKs+0 ausgeführt, womit der in der Schnellspeicherzelle s stehende Befehl geholt und ausgeführt wird.
Besonders geeignet für diese Verfahren sind die Schnellspeicher 15 und 16:
Der Schnellspeicher 16 ist nämlich identisch mit dem Schnellspeicher 5 und nimmt wie dieser bei Unterprogramm-Sprungbefehlen F... den Rückkehrbefehl auf.
So genügt es, den zu wiederholenden Befehl nach Schnellspeicher 15 zu tun und dann den Befehl Fs-n zu geben. Es erübrigt sich, die Rückkehr ins Programm explizit in den nächsten Schnellspeicher (16) zu bringen.
PQ...s−n PQ...K(s−1)+(8192−n)
s > 0

wenn 4096 ≤ n ≤ 8191 :
Ausführen von ‹s−1›
(siehe nebenstehend)

wenn n < 4096 :
unerfüllte Bedingung
Wirkung: Der im Schnellspeicher (s−1) stehende Befehl wird n-mal ausgeführt, und zwar ohne Zwischentakte, das heißt doppelt so schnell wie der vorige Wiederholungsbefehl.
Erreicht wird das dadurch, dass der Befehl auf einem eigenen Weg parallel zum Befehlszählregister kreist, dabei aber durchaus der jedesmaligen Erhöhung um 1 unterliegt. Das Befehlszählregister bleibt solange »stehen« .
Das Bit 26, das ist das oberste Bit der Trommelspeicheradresse, muss dazu gesetzt sein, das heißt, die Trommelspeicheradresse muss größer/gleich 4096 sein.
Sobald die Trommelspeicheradresse 8192 erreicht, läuft der Trommeladressteil über, das heißt, er wird zu Null (dass der Schnellspeicherteil dabei um 1 erhöht wird, ist hier unwesentlich); es ist dann also auch das Bit 26 Null. Damit wirkt der Befehl als bedingter Befehl mit unerfüllter Bedingung, wird nicht ausgeführt; stattdessen kommt der im Befehlszählregister stehen gebliebene Befehl in Befehlsregister und der normale Befehlsablauf geht weiter.
PQPPLVHAS...s−n
PQYRVA...s−n
wie zuvor In Verbindung mit den Bedingungen PP bzw. Y hat der Wiederholungsbefehl ganz speziell geschaltete Wirkungen, eine (mit PP) für schnelle (ganzzahlige) Divisionen, die andere (mit Y) für schnelle (ganzzahlige) Multiplikationen. Im Grundprogramm werden sie für die Gleitkommadivision und -multiplikation mitbenutzt. Mit Beispielprogrammen, die solche Operationen enthalten, können Sie diese raffinierten Spezialbefehle hier Schritt für Schritt studieren (Gegebenenfalls in der Menüleiste auf »Grundprogramm folgen« umschalten!)

Grundprogrammbefehle.

Diese Befehle sind Unterprogrammsprünge (Befehl F...) in Teile des Grundprogramms. Sie dienen der Ein- und Ausgabe, sowie den Gleitkommaoperationen.

In dieser Simulation ist das originale Grundprogramm der Zuse Z22R vom Juni 1961 gespeichert.

Typisch für diese Befehle ist, das ein zu bearbeitender Wert (Operand) vor Aufruf des Befehls im Akku stehen muss, ein zweiter – wenn die Operation zwei Operanden verlangt – im Schnellspeicher 6. Nach Ausführung der Operation steht das Ergebnis sowohl im Akku, als auch im Schnellspeicher 6.

Bei der Ausführung dieser Befehle werden weitere Schnellspeicher und evtl. Trommelspeicherzellen verwendet; deren Inhalt geht für das aufrufende Programm verloren oder muss vor dem Befehlsaufruf in bestimmter Weise definiert sein. Welche das sind, ist im Einzelfall angegeben.

Wird bei einer solchen Operation der zulässige Zahlenbereich überschritten, wird »Bereichsüberschreitung« (BUEB) auf dem Fernschreiber gemeldet.

Zum Kennenlernen der Funktion von Gleitkommaoperationen, Einlesen, Ausdrucken ist das Durchlaufen dieser Unterprogramme interessant. Beim Ausprobieren der Beispiele oder eigener Programme kann das Durchlaufen vieler Befehle bei jeder Grundprogrammoperation langwierig werden. Deshalb kann man in der Menüleiste zwischen »Grundprogramm folgen« und »Grundprogramm verbergen« umschalten: Bei »Grundprogramm verbergen« werden Grundprogrammfunktionen nicht mit den originalen Unterprogrammen ausgeführt, sondern mit PHP-Imitationen; bei der Ausführung wirkt dann jede Grundprogrammoperation wie ein einziger Befehl.
In derselben Weise kann durch Zusatz des V-Befehlsbits zu einem Unterprogrammbefehl die PHP-Imitation für diesen einen Unterprogrammbefehl unabhängig von Einstellung »Grundprogramm folgen/verbergen« erreicht werden. Im Original hatte diese Befehlkombination keinen Sinn.

Deshalb ist der schrittweise Ablauf bei Grundprogrammbefehlen je nach Einstellung von »Grundprogramm folgen/verbergen« unterschiedlich:

Zunächst kommt man immer zu dem Unterprogrammsprung F... bzw. zu E0+1 beim Einlesen. Dann:
  • »Grundprogramm folgen«:
    Die zugehörigen Befehle des originalen Grundprogramms werden Schritt für Schritt im üblichen Zuse-Zweitaktverfahren ausgeführt. Am Ende führt der im Schnellspeicher 5 oder von dort umgespeicherte Befehl E... mit der Rückkehradresse in das Hauptprogramm zurück; beim Einlesen wird der Bandbefehl am Ende des Lochstreifens ausgeführt.
  • »Grundprogramm verbergen«:
    Im Trommelspeicher wird an der durch den Aufruf bestimmten Adresse statt des originalen Befehls ein Kommentar gezeigt. Der nächste Schritt führt die durch den Kommentar angegebene Operation komplett über ein PHP-Skript durch. Der nächste Schritt führt in das Hauptprogramm an diejenige Stelle, die durch die Rückkehradresse bzw. den Bandbefehl bestimmt wird.
ExternInternWirkung Benutzte
Speicher
Markierung in
der Simulation
+F0+348(Gleitkomma)Ssp 3–10GK-Addition
-F0+426(Gleitkomma)Ssp 3–10GK-Subtraktion
XF0+367(Gleitkomma)Ssp 3–8GK-Multiplikation
:F0+480(Gleitkomma)Ssp 3–10GK-Division
MF0+437(Gleitkomma)Ssp 3–6GK-Negation
WF0+963
a→ a,6
Ssp 3–10
Tsp 1039
GK-Wurzel
siehe auch 3)
HWHF0+963
1  
a2
→ a,6
Ssp 3–10
Tsp 1039
GK-Wurzel
siehe auch 3)
DF0+644(FS : Fernschreiber)Ssp 3–10
Tsp –1041
FS-Ausgabe
siehe auch 1)
F800F0+800Spaltensprung→ FS
‹a›→ a,6
Ssp 3–6,9
Tsp –1041
FS-Spaltensprung
F1000F0+1000Wagenrücklauf,Zeilenvorschub→ FS
‹a›→ a,6
Ssp 3–6
Tsp –1041
FS-NeueZeile
F840F0+840−‹a› Zeichenbreiten→ FS
0→ ‹a›
Ssp 3–6,9
Tsp –1041
FS-Einrücken
HD
HF800
HF1000
HF840
HF0+644
HF0+800
HF0+1000
HF0+840
wie zuvor, aber »schnelle« Ausgabe,
d.h. auf einem Lochstreifenstanzer
(nur wenn <1029> negativ, sonst
auch normale Fernschreiberausgabe).
wie zuvorwie zuvor
E0+1E0+1Einlesen eines Lochstreifens
über den mechanischen
Lochstreifenabtaster
Ssp 2–15
Tsp –1027
Einlesen
siehe auch 2)
HE0+1HE0+1Einlesen eines Lochstreifens
über den schnellen photo-
elektrischen Lochstreifenabtaster
wie zuvorsiehe 4)

1) Die Art der Ausgabe wird durch den Inhalt der Trommelspeicherzellen 1029–1036 bestimmt. Siehe dazu ► Formatierung der Ausgabe.

2) Der Befehl E0+1 für Einlesen wird normalerweise über das Bedienungspult gegeben, siehe auch ► Lochstreifen herstellen und verarbeiten
Es ist allerdings auch möglich, vom Programm aus den Befehl zum Einlesen zu geben, um etwa Daten vom Lochstreifen portionsweise zu verarbeiten; jede »Portion« muss dann mit einem Bandbefehle EmE wieder das Programm starten. Ein Unterprogrammsprung mit F ist hier nicht sinnvoll.
3) In der ursprünglichen Fassung des Grundprogramms war der Wurzelaufruf F0+1055 bzw. HF0+1055. Das Wurzelprogramm war ab Trommeladresse 1040 gespeichert, was außerhalb des normalerweise schreibgeschützten Grundprogrammbereichs (1 – 1023) liegt. Deshalb musste das Grundprogramm vor einem die Wurzelfunktion benutzenden Programm gesondert eingelesen werden. Später wurde dann das Grundprogramm der Würzburger Maschine geändert; das Wurzelprogramm wurde in noch vorhandenen Lücken des Grundprogramms untergebracht. In dieser Simulation ist diese spätere Grundprogrammfassung übernommen.

4) Der photoelektrische Lochstreifenleser ist in dieser Simulation nicht realisiert.

Nur in dieser Simulation kann allen hier aufgeführten Grundprogrammbefehlen das Befehlsbit V zugesetzt werden, z.B. VD oder V+. Das bewirkt, dass der betreffende Befehl in einer PHP-Imitation in einem einzigen Schritt ausgeführt wird; das Grundprogramm selbst bleibt verborgen. Das ist unabhängig von der Einstellung »Grundprogramm folgen/verbergen« (in der Menüleiste umschaltbar); also auch bei »Grundprogramm folgen«, wenn normalerweise alle Einzelschritte bei Grundprogrammbefehlen angezeigt werden, bleiben sie bei den mit V versehenen Befehlen verborgen. Das erlaubt, sich die Schritte im Grundprogramm für bestimmte Befehle anzeigen zu lassen, aber andere Befehle in schneller PHP-Imitation ausführen zu lassen. Im Original ist der Zusatz V bei Grundprogrammbefehlen ohne Sinn.

Bandbefehle

Bandbefehle werden nicht in der Maschine gespeichert, sondern beim Einlesen eines Lochstreifens (»Band«) direkt wirksam. Sie sind im Zusammenhang mit dem Schreiben von Befehlen auf Lochstreifen unter ► Schreibweise von Befehlen erklärt