PAUSE

Aus C64-Wiki
Zur Navigation springenZur Suche springen
PAUSE
Syntax: PAUSE ["string",] <sek>
Parameter
"string": Stringkonstante
<sek>: 0..255 (Sekunden)
Einordnung
Typ: Anweisung
Kontext: Bildschirmkontrolle
Aufgabe: Programm für eine festgelegte Zeit anhalten
Abkürzung: keine
Token: $64 $66 (100 102)
Verwandte Befehle
keine


Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort PAUSE.

Typ: Anweisung
Syntax: PAUSE ["string",] <sek>

PAUSE ist dazu gedacht, einen Bildschirm für eine bestimmte Anzahl von Sekunden auf jeden Fall sichtbar zu halten. Der Befehl hält ein laufendes Programm also zeitkontrolliert an. Um eine einfache Möglichkeit zu haben, dem Benutzer ein solches Anhalten zu signalisieren, bietet PAUSE den optionalen <string>-Parameter an. Der String wird an der aktuellen Cursorposition ausgegeben und hängt ein Return-Zeichen (CHR$(13)) an. Nach der Ausgabe steht der Cursor deshalb am Anfang der Folgezeile. Fehlt der String, bleibt der Cursor an der letzten Ausgabeposition stehen. (Dieses inkonsistente Verhalten ist in TSB behoben.)

Eine Angabe von 0 für <sek> als Wartezeit ist erlaubt, der Interpreter setzt dann seine Arbeit unverzüglich fort.

Die Wartezeit kann durch Betätigen mit RETURN  abgebrochen werden.

Beachten:

  1. Werte über 255 für <sek> werden akzeptiert, aber auf Byteformat reduziert. Der Interpreter führt intern ein (<sek> AND 255) durch.
  2. Das Leerzeichen zwischen Befehl und eventuellem String-Parameter ist unbedingt erforderlich, sonst gibt es einen ?SYNTAX ERROR.
  3. Eine Variable für die Zeitangabe (ohne Text-String) führt zu einem ?TYPE MISMATCH ERROR.
  4. Die Verwendung von String-Variablen für den Text-String führt ebenfalls zu einem ?TYPE MISMATCH ERROR.


Dieser Befehl wurde in TSB erweitert und so überarbeitet, dass er nunmehr voll funktionsfähig ist, siehe PAUSE (TSB)


Beispiele[Bearbeiten | Quelltext bearbeiten]

Beispiel 1[Bearbeiten | Quelltext bearbeiten]

100 PRINT AT(23,23)"";: PAUSE "bitte warten",5
110 PRINT "{clear/home}";

In der vorletzten Zeile wird ein Hinweis ausgegeben und nach einer Wartezeit von 5 Sekunden der Bildschirm gelöscht.

Beispiel 2[Bearbeiten | Quelltext bearbeiten]

Mit einem POKE in $A81F (in TSB ab v2.31113: $B911, vorher $A809) kann die Taste, die PAUSE abbricht, geändert werden - was natürlich nur bei der Diskettenversion möglich ist:

10 POKE $A81F, 95 : REM CHR$(95) ist Pfeil links
20 PAUSE "BITTE WARTEN",5
30 PRINT "OKAY"
  • Mit speziellen Werten kann mit dieser Methode auch eine Pause vorgegeben werden, die nicht abgebrochen werden kann:
    • Wegen der besonderen Behandlung des Zeichens π ist das mit POKE $A81F,255 möglich; π als Abbruchtaste wird mit dem Code 222 gewählt (in TSB: s. oben).
    • Andere mögliche Werte sind 128, 130 und 132. Diesen PETSCII-Codes ist keine Taste zugeordnet.
  • Der Wert 0 führt zu demselben Verhalten wie PAUSE 0, d.h. es wird garnicht gewartet.
  • Normalerweise wird während PAUSE die STOP-Taste nicht abgefragt. Mit vorangestelltem POKE $A81F,3 allerdings kann PAUSE mit STOP - und nur mit dieser Taste - abgebrochen werden, was dann natürlich auch das ganze Programm unterbricht (in TSB: s. oben).