RESUME (TSB)

Aus C64-Wiki
Zur Navigation springenZur Suche springen
Begriffsklärung Der Titel dieses Artikels ist mehrdeutig. RESUME (Begriffsklärung).
RESUME (TSB)
Format: RESUME [NEXT / <ausdruck>]
Parameter
NEXT: setzt in der folgenden Zeile fort
ausdruck: setzt in der Zeile <ausdruck> fort
Einordnung
Typ: Anweisung
Kontext: Strukturkontrolle
Aufgabe: Beendet eine Tastatur-Kontrollroutine / setzt ON ERROR fort
Abkürzung: resU
Verwandte Befehle
ON KEY - ON ERROR - DISABLE - ERRN - ERRLN - NO ERROR - RESUME


Dieser Artikel beschreibt das Schlüsselwort RESUME (TSB).

Typ: Anweisung
Syntax: RESUME [NEXT / <ausdruck>]

IN TSB kann dieser Befehl zwei sehr unterschiedliche Aufgaben erfüllen.

Aufgabe 1:

Siehe RESUME (Teil der ON-KEY-Befehle). Hier gilt die parameterlose Befehlssyntax.

Aufgabe 2:

RESUME ist hier Teil der ON-ERROR-Befehle von TSB. Es dient dazu, die Fehlerabfangroutine im BASIC-Programm zu beenden, ohne den Fehlerabfangmodus des Interpreters abzuschalten. RESUME kann dabei drei syntaktische Formen annehmen:

  1. RESUME (ohne Parameter) setzt das BASIC-Programm hinter dem fehlerauslösenden Befehl fort. Diese Syntax ist gut geeignet, um ein Programm auf Tippfehler und einfache logische Fehler zu überprüfen. Gedacht für den Programmierer.
  2. RESUME NEXT setzt das BASIC-Programm in der auf den Fehler folgenden Zeile fort. Diese Syntax sollte man einsetzten, wenn gleich eine ganze Serie von potenziell fehlergefährlichen Befehlen auf einer einzigen Zeile steht, z.B. Druckausgabebefehle.
  3. RESUME <ausdruck> ist gut, wenn man die fehlerauslösende Programmzeile noch ein weiteres Mal aufrufen möchte, nachdem man die Fehlerursache beseitigt hat, wenn z.B. der Drucker bei einer Druckausgabe nun eingeschaltet ist. In dem Fall setzt man für <ausdruck> einfach ERRLN ein. Gedacht für den Einsatz beim Benutzer.
Beispiel: 

10 ON ERROR: GOTO 10000

15 PRIN "{clr/home}": PRINT "ok"
20 READ b
25 PRINT b: GOTO 20
30 DATA 1,2,3,4,5

10000 PRINT: PRINT "Fehler Nr." ERRN "(";: OUT: PRINT ")"
10010 PRINT "Betroffene Zeile:" ERRLN: PRINT
10020 PRINT "Beenden (b)? Fortsetzen (f)? ";: FETCH "fb",1,x$: PRINT
10030 IF x$ = "b" THEN PRINT: PRINT "Abbruch nach Fehler!": NO ERROR: STOP
10040 RESUME

(bei einem Programmlauffehler springt der Interpreter in die BASCIC-Zeile 10000, 
gibt dort Informationen zum Fehler aus und stellt Handlungsalternativen zur Auswahl)