orden ON BREAK GOSUB sólo actúa una vez, pues la línea 65 de la rutina de interrupción la
anula.
Palabras clave asociadas: ON BREAK CONT, ON BREAK GOSUB.
ON ERROR GOTO
Sintaxis: ON ERROR GOTO <número de línea>
Ejemplo:
10 ON ERROR GOTO 60
20 CLS:PRINT "Si detecto un error, ";
30 PRINT "listare el programa"
40 FOR t=1 TO 4000:NEXT
50 GOTO 100
60 PRINT "Hay un error en la línea";
70 PRINT ERL:PRINT:LIST
run
Orden. Provoca el salto a la línea especificada cuando se detecta un error en el programa.
La forma ON ERROR GOTO 0 desactiva la gestión de errores programada por el usuario y
activa la normal de BASIC.
Véase también la orden RESUME.
Palabras clave asociadas: DERR, ERL, ERR, ERROR, RESUME.
ON <expresión> GOSUB
Sintaxis: ON <selector> GOSUB <lista de: <número de línea>>
Ejemplo:
10 PAPER 0:PEN 1:INK 0,1
20 CLS:PRINT "MENU DE OPCIONES":PRINT
30 PRINT "1. Cambiar borde":PRINT
40 PRINT "2. Cambiar pluma":PRINT
50 PRINT "3. Cambiar modo":PRINT
60 INPUT "Elija del 1 al 3: ",x
70 ON x GOSUB 90,110,130
80 GOTO 20
90 b=b-1:IF b<0 THEN b=26
100 BORDER b:RETURN
110 p=p-1:IF p<2 THEN p=26
120 INK 1,p:RETURN
130 m=m-1:IF m<0 THEN m=2
140 MODE m:RETURN
run
Orden. Determina, en función del valor de <selector>, qué subrutina de BASIC debe ser
invocada. El margen de valores de <selector> es de 0 a 255. La rutina elegida es la que se
encuentra en la lista en el lugar indicado por <selector>. Así, en el ejemplo anterior, si x=1, se
invoca la rutina de la línea 90; si x=2, la línea 110; y si x=3, la de la línea 130.
Si el valor de <selector> es cero o mayor que el número de líneas citadas en la <lista de
números de línea>, no se invoca ninguna subrutina.
Manual de Amstrad CPC 6128 (revisión 2008) - Página 149