005:correo

Microhobby 5. Año I, del 04 al 10 de diciembre de 1984

El programa aparecido en la página 10 del número 2, es tremendamente útil y funciona a la perfección. Pero como he estado enredando en él, envío unas sugerencias en torno al scroll de pantalla.

  • Si en la línea 310 se cambia el 'IF contador 17' y luego 'PRINT AT 19,0' pasa a 'PRINT AT 20,0', se consigue una línea más en pantalla sin que aparezca el mensaje «SCROLL?»
  • El 'RANDOMIZE USR 3190' salta a la posición de ROM 3582, que es donde se encuentra en realidad la sub-rutina de «scroll», por lo que sería más correcto técnicamente poner 'RANDOMIZE USR 3582'.
  • Precisamente esta rutina lo primero que hace es cargar en el registro 'B' el nº de líneas a «scrollar». Hace 'LD B, 23'. Si se introduce en 'B' un nº de líneas inferior, las líneas de arriba (TOP) de la pantalla quedan «congeladas», lo que permite evitar el 'PRINT AT 1, 0; d S'.

Esto se consigue con:

LD B,18 - 6,18
CALL 3584 - 205,0,14
RET - 201

que sólo ocupa 6 bytes y congela las líneas de cabecera.

  • El 'PRINT AT 19,0' es igual a un 'POKE 23689,4'
  • 'PRINT AT 20,0' es igual a un 'POKE 23689,3'

Resumiendo, he modificado el programa como sigue:

310 LET contador=contador+1: IF contador>17 THEN RANDOMIZE USR 30014: POKE 23689, 3
345 DATA 6, 18, 205, 0, 14, 201
350 FOR n=30000 TO 30019: READ x: POKE n, X: NEXT n: RETURN

Cuando el contador sea 99 y se ejecute la línea 320 sí aparecerá el temido mensaje «Scroll?». Pero esto no me he puesto ha resolverlo. ¡¡No tengo cintas con tantos archivos!!

Zacarías Sánchez :: Cartagena

  • 005/correo.txt
  • Última modificación: d/m/Y H:i
  • por falvarez