Wolfgang Pavel: Zuse Z22: Dokumentation und Simulation
Programm ausführen

In dieser Simulation gibt es zwei Möglichkeiten, ein ganzes Programm in der Z22 zu speichern, um es dann auszuführen:

  • Man wähle eines der vorgegebenen ► Beispielprogramme ). Damit wird die Simulation gestartet, das Beispielprogramm ist komplett im Trommelspeicher abgelegt und der erste Befehl des Programms steht zur Ausführung bereit. Verfahren Sie dann, wie hier weiter beschrieben.
  • Sie machen selbst ein Z22-Programm im Freiburger Code und speichern es als Textdatei auf Ihrem Rechner. Weitere Anleitungen dafür in ► Schreibweise von eigenen Befehlen und Daten und den zugehörigen Unterkapiteln.
    Legen Sie dann diese Datei als virtuellen Lochstreifen in den Abtaster der Simulation. Starten Sie dann das Leseprogramm der Z22. Lesen Sie dazu ► Lochstreifen herstellen und verarbeiten.
    Nach dem (fehlerfreien) Einlesen steht das Programm im Trommelspeicher der Z22 und der erste Befehl zur Ausführung bereit. Sie verfahren dann, wie hier weiter beschrieben.

Ich gehe jetzt davon aus, dass der Befehl zum Start des Programms im Befehlsregister steht; er müsste dort also bitweise zu erkennen sein; außerdem müssten die Lämpchen des Bedienungspults denselben Befehl anzeigen. Der Startbefehl sollte ein »Sprungbefehl« der Form E0+t sein, wobei t die Trommelspeicheradresse des ersten »echten« Programmbefehls ist. In der Simulation sollte im Trommelspeicher diese Adresse und der in ihr enthaltene Befehl sichtbar sein.

Das Programm kann nun schrittweise – ein Befehl nach dem anderen – ausgeführt werden, was den inneren Ablauf am besten demonstriert (siehe hier). Oder das Programm kann gestartet werden, sodass die Befehle automatisch fortlaufend ausgeführt werden (siehe weiter unten).

• Schrittweises Ausführen:

Da die Z22 sich im Stop-Zustand befindet und nach jedem hier beschriebenen WEITER-Schritt automatisch wieder in den Stop-Zustand geht, ist bei jedem Befehl das Z-Bit (Z = Stop-Befehl) gesetzt, auch wenn die Befehle selbst Z gar nicht enthalten.

Bei »normalen« Befehlssituationen steht der Befehl des Befehlsregisters auch im Steuerregister, das für die Einstellung der logischen Schalter in der Z22 und damit für die Befehlsausführung zuständig ist.

Drücken (Klicken) Sie nun die Taste »Weiter«, womit Sie den Befehl ausführen und der erste Befehl des Programms aus dem Trommelspeicher in das Befehlsregister kommt. Gleichzeitig kommt der vorher dort stehende Sprungbefehl um 1 erhöht, also E0+(t+1) in das Befehlszählregister.

Drücken (Klicken) Sie nun erneut die Taste »Weiter«, womit Sie den Befehl ausführen und (wenn es nicht selbst ein Sprungbefehl ist) der um 1 erhöhte Sprungbefehl aus dem Befehlszählregister ins Befehlsregister kommt. Dieser zeigt auf die nächste Trommelspeicheradresse des gespeicherten Programms.

Drücken (Klicken) Sie nun erneut die Taste »Weiter«, womit Sie logischerweise den nächsten Befehl des gespeicherten Programms in das Befehlsregister holen.

Und so weiter in diesem »Zweitaktverfahren«, bei dem sich ein Befehl des gespeicherten Programms und ein Sprungbefehl zum Zugriff auf das Programm automatisch abwechseln.

In den Registern und den aktiven Speichern der Simulation sehen Sie Informationen über deren Inhalte. Auch können Sie solche Informationen bekommen, indem Sie die Maus auf aktive Teile (Register, Speicher, Schalter, Leitungen) führen. Alle Inhalte sind die VOR der Ausführung des anstehenden Befehls. Die Schalter stehen so, wie der anstehende Befehl befiehlt. Alles weitere darüber, welche Informationen in der Simulation zu sehen sind, in der ► Legende zur Simulation

Wenn Sie ein vorgegebenes Beispielprogramm ausführen, sehen Sie zu etlichen Befehlen zusätzliche Kommentare oben im blauen Feld.

Durch verschiedene Situationen kann dieser Normalablauf im Einzelfall verändert sein: Sprungbefehle im gespeicherten Programm, unerfüllte Bedingungen, Substitutionsbefehle (G-Befehle), Fehlersituationen. Einzelheiten dazu in den entsprechenden Kapiteln.

• Fortlaufendes Ausführen:

Drücken (Klicken) Sie die Taste »Start«: Die weiteren Befehle werden fortlaufend ausgeführt. Sie können dies wie bei der realen Maschine an den Signallämpchen auf dem Bedienungspult erkennen; außerdem sehen Sie hier auch die Veränderungen der internen Abläufe.

Sobald ein Befehl des Programmms das Stop-Bit Z enthält oder sobald Sie die Taste »Stop« drücken, wird der Programmablauf angehalten und kann dann entweder mittels WEITER schrittweise oder erneut mittels START fortlaufend fortgesetzt werden.

Ein Stop erfolgt auch, wenn etwas anderes als ein Befehl ins Befehlsregister kommt (normalerweise eine Fehlersituation) und die Taste »Bedingter Stop« eingerastet ist – was wie bei der realen Maschine immer sehr zu empfehlen ist.

Grundprogramm-Aktionen (Gleitkommaoperationen, Drucken, Leseprogramm) führen wie beim Original zu einem Unterprogramm-Sprungbefehl F... . Wird dieser ausgeführt, wird das Unterprogramm des originalen Unterprogramms ausgeführt; mit der Rückkehr über EK5+0 geht es dann wie beim Original weiter. Das ist zum Kennenlernen der Funktionen interessant, kann aber langwierig sein, wenn Beipiele oder eigene Programme ausgeführt werden. Deshalb kann man in der Menüleiste zwischen »Grundprogramm folgen« und »Grundprogramm verbergen« umschalten. Bei »Grundprogramm verbergen« wird jede Grundprogramm-Aktion durch eine PHP-Imitation ausgeführt, was dann wie ein einziger Befehl wirkt. Einzelheiten zu den einzelnen Grundprogramm-Aktionen in der ► Befehlsliste.