debía realizarse en el registro número 0. De no haberlo hecho así, se habría leído el registro
actual. La última orden de este ejemplo escribe en la pantalla el resultado de la lectura; si todo
ha ido bien, d$ debería ser igual a la cadena 'PRIMER REGISTRO' seguida de 5 espacios.
Escriba lo siguiente:
b$="DOS"+SPACE$(17)
c$="TRES"+SPACE$(16)
|BANKWRITE,@r%,b$,1
|BANKWRITE,@r%,c$
Estas órdenes escriben b$ y c$ en los registros 1 y 2. En la primera orden BANKWRITE hemos
incluido el parámetro opcional, con lo que b$ ha quedado almacenada en el registro 1. Esta
misma orden ha incrementado el puntero de registro; al ejecutarse la segunda orden
BANKWRITE, el puntero apunta al registro 2, y es en él donde se almacena c$.
Escriba:
PRINT
r%
El resultado debería ser 2. Este número se puede considerar como el número del último registro
sobre el que se ha operado, o bien como el número del registro actual menos uno. En este
ejemplo, el último registro utilizado es el 2; el registro actual (o sea, el registro sobre el que
actuará la próxima orden de RAMdisc si no se especifica otra cosa) es el 3.
Esta variable, r%, proporciona siempre información acerca de cómo se ha desarrollado la última
operación. Si la operación ha concluido con éxito, la variable toma un valor positivo que
representa un número de registro. En caso contrario, el valor es negativo e indica un código de
error. BANKWRITE y BANKREAD pueden generar los dos códigos de error siguientes:
• -1 Indica que se ha alcanzado el final del fichero. Esto ocurre cuando ya se han utilizado
todos los registros o cuando se especifica un número de registro que no existe.
• -2 Indica un fallo en la conmutación de bancos. No debería ocurrir nunca.
Pruebe los siguientes ejemplos:
d$=STRING$(20,"X")
|BANKOPEN,20
FOR
n=1
TO 3:|BANKWRITE,@r%,d$:NEXT
La primera orden asigna a la variable literal d$ una cadena formada por 20 letras 'X'. |
BANKOPEN reinicializa el puntero de registros a 0, de modo que |BANKWRITE escribe la
cadena d$ en los registros 0, 1 y 2, borrando su contenido anterior.
Ahora escriba:
a$="PRIMERO"
|BANKWRITE,@r%,a$,0
Estas órdenes escriben la palabra 'PRIMERO' en el registro 0, superponiéndola a algunas de las
'X' que había antes en él. Vuelva a igualar d$ a una cadena de espacios con
d$=SPACE$(20)
y escriba
|BANKREAD,@r%,d$,0
Manual de Amstrad CPC 6128 (revisión 2008) - Página 95