PREGUNTAS Y RESPUESTAS DEL PAW

Fco. Javier Alvarez

1.- En el manual dice que con la opción de colores de fondo, teniendo varios sets de caracteres en el parser, puedo variar el que voy a usar, es decir, cambiar de set, pero en la práctica sólo puedo definir el color del papel, tinta y borde. ¿Sólo puedo conseguirlo con la orden CHARSET?

No me explico cómo puede darte este problema. La opción B del menú del PAW permite definir los colores que citas, y además el set de caracteres que vamos a usar por defecto (es decir, hasta que cambiemos a otro mediante el condacto CHARSET).

2.- ¿Cómo puedo conseguir que se dibuje el gráfico de una localidad, éste no se vuelva a dibujar cuando se redescriba dicha localidad?

Siento decirte que no hay forma de hacer eso. El PAW siempre realiza un borrado de pantalla antes de realizar la descripción de una localidad, excepto en modo 1, que es el de sólo texto, y por tanto no admite gráficos.

3.- Quiero hacer un juego de 128K, y para ello inicializo una página de la memoria para dedicarla al uso exclusivo del texto de localidades y mensajes. Cuando la lleno, intento usar el compresor para crear mi propio diccionario con la opción de Compilar y Comprimir, la cual actúa perfectamente en la página 0, pero cuando lleva buscados 2 token dá error. ¿Cómo podría crear mi propio diccionario en páginas superiores a la 0?

Te aconsejo que para solucionar este problema, coloques los textos de localidad en la página 2 y posteriores. El compresor del PAW arroja una serie de errores en la página 1 y sólo para localidades, así que puedes dedicar esta página para mensajes. Lógicamente, la localidad 1 deberá ir en la página 1, y ésta, forzosamente, deberá quedar libre.

4.- En el diseñador gráfico, ¿cómo puedo dibujar un círculo?

Hay dos formas... la primera (y más común) es armarse de paciencia y "dibujarlo a ojo". En los primeros intentos te saldrá de todo menos círculos, pero con la práctica pueden conseguirse buenos resultados. La segunda consiste en ayudarse con un programa en BASIC que calcule las coordenadas de los puntos del círculo y luego con estas ir al editor del PAW y dibujar en base a ellas. Este método es más tedioso, pues hay que salir del PAW cada vez que queramos dibujar un círculo. De todas formas, ahí vá el programa:

10 CLS:INPUT "CENTRO? ";X0;",";Y0
20 INPUT "RADIO? ";R
30 FOR A=0 TO 2*PI STEP PI/10
40 LET X=X0+R*COS A
50 LET Y=Y0+R*SIN A
60 PRINT X,Y
70 NEXT A

Una aclaración: Variando el paso del bucle pueden conseguirse más puntos, y por tanto, círculos más detallados. Cuidado de fijar el centro y el radio para que el círculo no salga de los límites de la pantalla.

Alejandro Castro

1.- Tengo una rutina en código máquina que está relacionada con los gráficos. Te agradecería que me indicases cómo puedo introcucirla en una aventura mía, y cómo puedo llamarla desde un punto determinado de mi aventura.

Lo primero que debes hacer es reservar memoria para la rutina. Mi consejo es que, si no es demasiado larga (menos de 3K), puedes alojarla en la parte baja de la memoria entre las direcciones 26000 y 28671. Si supera los 3K deberás dejar libre en el editor del PAW tantos bytes como ocupe tu rutina, y luego, cuando tengas la aventura final, cargar tu rutina detrás del bloque A que graba el PAW (deberás ussr un copión o un lector de cabeceras para saber el comienzo y longitud de este bloque).

Una vez hecho esto, para llamarla desde cualquier punto de la aventura deberás decirle al PAW dónde la has colocado. Debes hacer unos POKES en la dirección EXTVEC. Estos son: 195 seguido de los 2 bytes de la dirección de la rutina (es decir, JP a la rutina). Esta ya está lista y podrás invocarla mediante el uso del condacto EXTERN. Recuerda que el registro A llevará el parámetro que introduzcas en EXTERN.